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

Mat*_*ers 75 sql sqlite

sqlite是否支持select语句中的sql函数"if"?

例如

select if( length( a ) > 4 , a , ' ') as b
from foo
Run Code Online (Sandbox Code Playgroud)

如果长度超过4个字符长,则返回a.否则它将返回''作为b

如果它确实支持select中的条件应该使用的语法是什么?

我查了 http://sqlite.org/lang_corefunc.html但我看不到它.

use*_*019 125

查看案例表达式.

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

以你为榜样

select case when length(a) > 4 then a else '' end as b
from foo
Run Code Online (Sandbox Code Playgroud)


Pau*_*xon 17

您可以使用案例:

select case when length(a)>4 then a else ' ' end from foo;
Run Code Online (Sandbox Code Playgroud)


Ste*_*low 6

从版本3.32.0开始,您可以使用iif(X,Y,Z)

select iif( length( a ) > 4 , a , ' ') as b
from foo
Run Code Online (Sandbox Code Playgroud)

从文档中:

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