选择语句和If / else语句

时间:2014-01-24 06:20:18

标签: sql oracle null case

对不起,我是oracle的PL / SQL toad新手。我有一个简单的问题。我需要在这个表“JTF_RS_DEFRESOURCES_VL”中找到一些列名,我用这个脚本来做。只是一个示例列。

SELECT column1, 
       column2, 
       column3, 
       column4, 
       column5, 
       end_date_active 
FROM   jtf_rs_defresources_vl 

然后我想使用“if else语句”,如果END_DATE_ACTIVE = null则它处于活动状态,否则它处于非活动状态。

3 个答案:

答案 0 :(得分:2)

听起来你想要一个CASE声明

SELECT (CASE WHEN end_date_active IS NULL 
             THEN 'Active'
             ELSE 'Inactive'
         END) status,
       <<other columns>>
  FROM jtf_rs_defresources_vl

答案 1 :(得分:1)

您可以使用@Justin建议的CASE表达式,但在Oracle中有一个更简单的函数 - NVL2。它接收三个参数并评估第一个参数。如果不是 null,则返回第二个参数,如果是,则返回第三个参数。

所以在你的情况下:

SELECT NVL2(end_date_active, 'Active', 'Inactive') AS status,
       <<other columns>>
  FROM jtf_rs_defresources_vl

答案 2 :(得分:0)

select case end_date_active 

   when is null then 'ACTIVE',

   else 'INACTIVE'

   end as 'STATUS'

来自jtf_rs_defresources_vl;