条件在select查询中不匹配时忽略列 - SQL-Oracle

时间:2009-10-15 13:23:03

标签: sql oracle ignore

我的要求是在条件满足时在选择查询中显示列,而在条件不匹配时不显示列。

例如:在下面这个简单的表格中

表:XYZ

Name    ID  Fairness
------  --  --------
harish  3   White
ravi    5   brown 
arun    2   black 
rahul   5   white

查询:

select name,
       case id when 5 then " I Like to learn more languages" end as Remarks,
       Fairness
from xyz
where id=2

我的要求是在上面的查询中“备注”列不应该显示在输出中,但我的输出是

实际输出:

Name  Remarks  Fairness
----  -------  --------
arun  null     black

预期产出:

Name  Fairness
----  --------
arun  black

,即只有在where子句中id为5时才需要显示备注列。

如果不满足或满足条件,请向我提供帮助以忽略“备注”。

2 个答案:

答案 0 :(得分:0)

也许你想要SQL COALESCE函数?

select coalesce(myMaybeNullColumn, '') from foo

会给空格而不是空格。

答案 1 :(得分:0)

只需在查询中添加else条件,即可为不想显示的情况返回空白。

select name,case id when 5 then " I Like to learn more languages" else "" end as Remarks, Fairness from xyz where id=2