If Else条件的SQLite语法

Sat*_*ahi 29 sqlite

我正在使用SQLite数据库.我的表有一个名为"密码"的文本列.之前检索用于执行简单的"select*from myTable"查询的值.但现在的要求是,如果密码值不是NULL,那么我需要将其显示为"是"或否则为"否".它是这样的: -

select * from myTable
if Password != NULL then Password = 'Yes'
else Password = 'No'
Run Code Online (Sandbox Code Playgroud)

我搜索了很多关于这个,但我没有得到任何正确的链接或例子.任何帮助或建议将非常感激.

-sattu

CL.*_*CL. 51

SELECT *,
       CASE WHEN Password IS NOT NULL
       THEN 'Yes'
       ELSE 'No'
       END AS PasswordPresent
FROM myTable
Run Code Online (Sandbox Code Playgroud)


Nic*_*ick 13

SQLite使用CASE WHEN THEN END语法.您可以在这里阅读更多相关信息:http://www.sqlite.org/lang_expr.html

我没有检查语法,但我猜这样的事情:

select * 
from myTable CASE WHEN Password != NULL THEN Password = 'Yes' ELSE Password = 'No' END;
Run Code Online (Sandbox Code Playgroud)

虽然我不确定它会起作用.如果你想根据表中每个记录的密码来获得YES或NO,那么这可能更接近你想要的:

SELECT Field1, 
    Field2,
    (CASE WHEN Password != NULL THEN 
        'Yes' 
     ELSE 
        'No' 
     END) as 'Password'
FROM myTable;
Run Code Online (Sandbox Code Playgroud)

同样,我目前无法访问SQLite来自行测试,因此可能需要一些工作.


Nea*_*arl 10

您可以使用IIF()SQLite v3.32.0+ 中的函数来进一步缩短代码:

SELECT
  Password,
  IIF(Password IS NOT NULL, 'Yes', 'No') [HasPassword]
Run Code Online (Sandbox Code Playgroud)