我正在使用SQLite数据库。我的表有一个名为“密码”的文本列。之前检索用于执行简单的“select * from myTable”查询的值。但现在的要求是,如果密码值不是NULL,那么我需要将其显示为“是”或否则为“否”。它类似于: -
select * from myTable
if Password != NULL then Password = 'Yes'
else Password = 'No'
我对此进行了很多搜索,但我没有得到任何正确的链接或示例。 任何帮助或建议都会非常感激。
-sattu
答案 0 :(得分:47)
SELECT *,
CASE WHEN Password IS NOT NULL
THEN 'Yes'
ELSE 'No'
END AS PasswordPresent
FROM myTable
答案 1 :(得分:12)
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;
虽然我不确定它会起作用。如果你想根据表中每个记录的密码来获得YES或NO,那么这可能更接近你想要的:
SELECT Field1,
Field2,
(CASE WHEN Password != NULL THEN
'Yes'
ELSE
'No'
END) as 'Password'
FROM myTable;
同样,我目前无法访问SQLite来自行测试,因此可能需要一些工作。
答案 2 :(得分:2)
我了解,如果密码列中已写入密码,我们想将密码列的值更改为“是”,否则我们将其值更改为“否”。
我们可以使用以下两个查询进行这些更改:
UPDATE myTable SET Password = "YES" WHERE Password IS NOT NULL;
UPDATE myTable SET Password = "NO" WHERE PASSWORD IS NULL;