sqlite是否支持select中的任何类型的IF(条件)语句

sqlite是否支持select中的任何类型的IF(条件)语句,sql,sqlite,Sql,Sqlite,sqlite是否支持select语句中的sql函数“if” 比如说 select if( length( a ) > 4 , a , ' ') as b from foo select case when length(a) > 4 then a else '' end as b from foo 如果长度超过4个字符,则返回a。否则它将返回“”作为b 如果它确实支持选择中的条件,那么应该使用什么语法 我已经检查过了,但是我看不到它。查看表达式 CASE表达式的作用类似于其他编程

sqlite是否支持select语句中的sql函数“if”

比如说

select if( length( a ) > 4 , a , ' ') as b
from foo
select case when length(a) > 4 then a else '' end as b
from foo
如果长度超过4个字符,则返回a。否则它将返回“”作为b

如果它确实支持选择中的条件,那么应该使用什么语法

我已经检查过了,但是我看不到它。

查看表达式

CASE表达式的作用类似于其他编程语言中的IF-THEN-ELSE

以你为例

select if( length( a ) > 4 , a , ' ') as b
from foo
select case when length(a) > 4 then a else '' end as b
from foo
您可以使用:

select case when length(a)>4 then a else ' ' end from foo;
由于您可以使用以下版本:

根据共同声明:

iif(X,Y,Z)函数在逻辑上等价于CASE表达式“CASE WHEN X THEN Y ELSE Z END”,并生成与之相同的字节码


古怪的这个链接对iceweasel不起作用。这将导致文档未找到错误(/lang_5Fexpr.html)。地址栏中的地址将是正确的(…/lang_expr.html)。不知道为什么。虽然地址是正确的,但刷新不起作用;必须在地址栏中按enter键才能进入页面。我想markdown不喜欢下划线。我已将链接更改为使用snurl重定向器,您不应使用重定向器[因此,现在直接URL不知道为什么它们不能对简单的东西(如C中的三元运算符)使用较短的语法….想象一下,当将几个case语句串在一起时,查询可以有多长时间!由于某种原因,它不起作用。执行结束时出现错误。结果:没有这样的函数:iif@AlexanderTverdohleb你在做什么版本?尝试执行
选择sqlite_version();
与您尝试执行不起作用的语句的方式相同。问题在于sqlite版本。我对其进行了更新,函数运行良好。@steakorflow