use*_*740 19 sql oracle null plsql
只是关于交易的问题将在查询中使用空值.
例如,我有下表,其中包含以下字段和值
TABLEX
Column1
1
2
3
4
5
---------
Column2
null
A
B
C
null
Run Code Online (Sandbox Code Playgroud)
我在特定程序上传递变量Y. 程序里面是这样的游标
CURSOR c_results IS
SELECT * FROM TABLEX where column2 = variableY
Run Code Online (Sandbox Code Playgroud)
现在问题是变量Y可以是null,A,B或C如果变量Y是null我想选择column2为null的所有记录,否则其中column2是A,B或C.
我不能做上面的游标/查询,因为如果variableY为null,它将无法工作,因为比较应该是
CURSOR c_results IS
SELECT * FROM TABLEX where column2 IS NULL
Run Code Online (Sandbox Code Playgroud)
我应该使用哪种光标/查询来容纳null或string变量.
对不起,如果我的问题有点令人困惑.我解释事情并不是那么好.提前致谢.
ang*_*son 26
根据该参数的内容生成不同的SQL,或者像这样更改SQL:
WHERE (column2 = variableY) OR (variableY IS NULL AND column2 IS NULL)
Run Code Online (Sandbox Code Playgroud)
Oracle的Ask Tom说:
where decode( col1, col2, 1, 0 ) = 0 -- finds differences
Run Code Online (Sandbox Code Playgroud)
要么
where decode( col1, col2, 1, 0 ) = 1 -- finds sameness - even if both NULL
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
35318 次 |
最近记录: |