选择case或if语句?

时间:2016-05-13 07:41:26

标签: sql oracle11g

是否可以在SQL中添加select语句或者在SQL中添加函数

select case when :A='do' then (select col1 from table1) else 'n/a' end;

select if(:A='do',(select col1 from table1),'N/A');

如果我的参数是'做'它应该显示表格中的所有值,否则它应该只显示N / A'。

请帮帮我。谢谢!

1 个答案:

答案 0 :(得分:1)

如果这是Oracle,根据您的标记,那么您的查询都不是有效的,因为他们实际上并没有从表中进行选择。

也许你所追求的是:

select case when :A='do' then col1 else 'n/a' end col
from   table1;

或者你可能会喜欢这样的事情:

select col1
from   table1
where  :A != 'do'
union all
select 'N/A' col1
from   dual
where  :A = 'do';

您没有提供任何示例数据,所以我不确定您尝试做的是,如果绑定变量为“do”或者是否为“do”,则col1的所有值都显示为“N / A”你只想要一行包含'N / A'。