【问题标题】:No such function: iif in SQLITE没有这样的功能:SQLITE 中的 iif
【发布时间】:2020-10-12 06:08:23
【问题描述】:

社区。​​p>

我在 SQLITE 中有一个非常典型的任务。

如果 X 返回 Y,否则返回 Z。

为此,我使用了 CASE 语句

“当 X THEN Y ELSE Z END 时的情况”。

但是,我在官方文档中发现了 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”相同的字节码。

但是当试图运行这样的功能时,我得到一个错误。

执行完成但出现错误。 结果:没有这样的功能:iif

这个函数有什么问题?根据官方文档,应该有这样的功能。

【问题讨论】:

  • This answer 在 Stack Overflow 上说该函数是在 SQLite 3.32.0 中引入的。顺便说一句,我通过在网上搜索“iif function sqlite”找到了这个,它是最好的结果之一。
  • case 是 ANSI SQL 标准且可移植。
  • 不要打扰IIF()。没有理由在 SQLite 中编写向后兼容 MS Access 的代码。

标签: sql sqlite case iif


【解决方案1】:

感谢@paddy 和他的链接IF() statement alternative in SQLite

问题来自 SQLite 版本,它应该是 3.32 或更高版本。我一直在使用 SQLite 浏览器,sqlite 版本是 3.25。我更新了 Sqlite Browser 并且能够使用 IIF 功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 2012-10-16
    • 2013-03-07
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多