如果number为NULL,我需要获取所有行或获取数字行。
到目前为止,这是我的代码。
CASE
WHEN value IS NOT NULL THEN SELECT FIRST number * FROM MYTABLE
END
最好的方法是什么?
答案 0 :(得分:0)
我对您的发言和您的问题感到困惑,不清楚:
如果
number
为NULL,我需要获取所有行或获取number
行
您的查询与您的问题不匹配。因此,我已经分解了您的查询和问题。
case
来调用多列,case
仅返回单列。和
不要忘了加上括号,否则会出错。您的查询应该是:
CASE
WHEN value IS NOT NULL THEN (SELECT number FROM MYTABLE)
END
number
不为空的情况下检查value
为空。您的查询应该是:
CASE
WHEN value IS NOT NULL THEN
(SELECT case when number is null then 0 else number end FROM MYTABLE)
END
由于您使用的是Oracle,因此可以使用NVL
,可以阅读Null Value Here
CASE
WHEN value IS NOT NULL THEN
(SELECT NVL(number, 0) FROM MYTABLE)
END
您的查询应该是:
CASE
WHEN value IS NOT NULL THEN (SELECT count(number) FROM MYTABLE)
END
所有此查询都可以返回
子查询返回的错误超过一行
因此,我比这里subquery
更喜欢您加入。您可以阅读About Join Here
答案 1 :(得分:0)
我想你想要
select t.*
from mytable t
where <number> is null or
rownum <= <number>;
我不清楚您的示例代码为何同时具有number
和value
。