我在 SQLite 中有一个非常典型的任务。
如果 X 返回 Y,否则返回 Z。
为此目的,我使用了 CASE 语句
“X 结束时 Y ELSE Z 结束的情况”。
不过我在官方文档中找到了IIF函数
https://sqlite.org/lang_corefunc.html#iif
iif(X,Y,Z)
如果 X 为真,则 iif(X,Y,Z) 函数返回值 Y,否则返回 Z。 iif(X,Y,Z) 函数在逻辑上等同于 CASE 表达式“CASE WHEN X THEN Y ELSE Z END”,并生成相同的字节码。
但是当尝试运行该函数时,我收到错误。
Execution finished with errors.
Result: no such function: iif
这个功能有什么问题吗?根据官方文档,应该有这样的功能。
感谢 @paddy 及其这篇文章的链接 SQLite 中的 IF() 语句替代方案
问题来自于SQLite版本,应该是3.32或更高版本。我一直在使用SQLite浏览器,sqlite版本是3.25。我更新了Sqlite Browser并能够使用IIF功能。