回答

收藏

有什么可移植的方式来表达与空列表相同的IN条件?

技术问答 技术问答 174 人阅读 | 0 人回复 | 2023-09-12

例如,()适用于sqllite3:
8 e8 c; A! Q5 R  d* O4 W! vselect *from orderswhere custid = ?and status in ()但它失败了postgres:  ]# _5 {; h) J. c0 H. j  a
ksysdb=# select code,applicable_objecttype from pssystem_ktagtype where applicable_objecttype in ();ERROR:  syntax error at or near ")"LINE 1: ...pe from pssystem_ktagtype where applicable_objecttype in ();使用(null)使postgres感到高兴,似乎不打扰sqllite3:
- N! j4 ~5 [# U% C$ eksysdb=# select code,applicable_objecttype from pssystem_ktagtype where applicable_objecttype in (null);code | applicable_objecttype------ -----------------------(0 rows)但它可以在那里SQL Server和Oracle上运行吗?ANSI
$ F) X0 c5 E2 oSQL有什么要说的?我的猜测是null什么都不会匹配(包括(包括)null因此 in列表    条件将始终评估为false。
/ v4 k2 ^/ b5 ]                                                               
: h  V8 H* ^6 `. w6 f3 y( o    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则