Oracle条件选择

时间:2013-06-24 18:09:11

标签: sql oracle

我确定这很简单。

如何在列上进行条件值选择。

Basically if column1 ='Y' then display as "FOO" else if 'n' display "foobar"

select column1 from table1;

2 个答案:

答案 0 :(得分:5)

使用simple case expression

select case column1 when 'Y' then 'FOO' else 'foorbar' end
from table1;

假设一个简单的if / else。您的问题指定了两个值,您可以同时检查两个值:

select case column1 when 'Y' then 'FOO' when 'n' then 'foorbar' end
from table1;

如果您有column1Y以外的任何n值,则会获得null;即使您正在测试多个显式值,您仍然可以使用else指定不同的值:

select case column1 when 'Y' then 'FOO' when 'n' then 'foorbar' else 'bar' end
from table1;

答案 1 :(得分:3)

Oracle中的另一种语法是解码,我喜欢这样,因为它简洁明了,但基本上与上面建议的case语句相同:

select decode(column1,'Y','FOO','foobar') from table1;

语法如下:decode(expression,search,result [,search,result] ... [,default])。

更多示例在Oracles文档中:http://www.techonthenet.com/oracle/functions/decode.php