有没有办法检查是NULLPL/SQL 中的值列表?
我有类似的东西:
SELECT * FROM myTable t WHERE t.dataId IN (:myList) OR :myList IS NULL
Run Code Online (Sandbox Code Playgroud)
在运行时,:myList符号代替字符串列表,例如
SELECT * FROM myTable t WHERE t.dataId IN ('a', 'b', 'c') OR ('a', 'b', 'c') IS NULL
Run Code Online (Sandbox Code Playgroud)
我已经意识到这('a', 'b', 'c') IS NULL是无效的PL/SQL,所以我想知道是否有另一种方法可以检查值列表NULL.
我试图模仿的行为将评估('a', 'b', 'c')为NOT NULL.我试图避免创建另一个变量(例如:myListFlag),''如果列表为空,它将返回.
也许COALESCE会帮助你:
它评估从左到右的值列表,并返回第一个值NOT NULL.如果所有值都是NULL,则计算结果为NULL,您可以检查的单个值IS NULL.
SELECT * FROM myTable t WHERE t.dataId IN (:myList) OR COALESCE(:myList) IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1818 次 |
| 最近记录: |