在oracle中解码null值的函数

时间:2016-07-21 11:05:50

标签: sql oracle

我正在研究一个java代码,我在其中将用户输入值与数据库值进行比较。 我正在编写代码,以便从下拉菜单中选择特定分区时向用户显示警报消息。但是我想向每个部门的所有用户显示一些警告信息。 我将表格列设为sr_n0alert_descdiv_codealert_flag

最初,我正在检查div_code = 'division code'alert_flag = 'y'以显示部门特定的提醒消息。 但现在我想知道如果decodediv_code = nullalert_flag = 'y'函数将如何运作。

我试过这个SQL查询:

    SELECT  DECODE(DIV_CODE,'61','Division A',
                    '62','Division B', 
                      'ALL')
    FROM ALERTS WHERE ALERT_FLAG='Y';

2 个答案:

答案 0 :(得分:0)

如果没有匹配项,则结果为'ALL'。我强烈建议您使用ANSI标准CASE语句,而不是Oracle特定的DECODE()函数:

SELECT (CASE DIV_CODE
            WHEN '61' THEN 'Division A'
            WHEN '62' THEN 'Division B' 
            ELSE 'ALL'
        END)
FROM ALERTS
WHERE ALERT_FLAG = 'Y';

答案 1 :(得分:0)

我通过编写简单的SQL命令解决了这个问题,它对我有用。

SELECT ALERT_DESC FROM ALERTS A 
WHERE 
  A.DIV_CODE IS NULL 
  AND A.ALERT_FLAG='Y' ;