我正在研究一个java代码,我在其中将用户输入值与数据库值进行比较。
我正在编写代码,以便从下拉菜单中选择特定分区时向用户显示警报消息。但是我想向每个部门的所有用户显示一些警告信息。
我将表格列设为sr_n0
,alert_desc
,div_code
,alert_flag
。
最初,我正在检查div_code = 'division code'
和alert_flag = 'y'
以显示部门特定的提醒消息。
但现在我想知道如果decode
和div_code = null
,alert_flag = 'y'
函数将如何运作。
我试过这个SQL查询:
SELECT DECODE(DIV_CODE,'61','Division A',
'62','Division B',
'ALL')
FROM ALERTS WHERE ALERT_FLAG='Y';
答案 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' ;