我正在尝试在内部使用子查询和 Oracle Decode 语句,如下所示
RPAD(NVL(DECODE(TRIM(ST.StudentCode),'AB','CA','TM','CH',(Select InternalNumber from Address where State = SA.STATECODE) <=2,'PAS', ST.StudentCode), ' '), 3, ' ')
当我用我的原始查询运行这部分时,我在同一行中收到错误消息“缺少正确的括号”。这里有什么问题?
您可以在子查询中添加case 表达式:
RPAD(NVL(DECODE(TRIM(ST.StudentCode),'AB','CA','TM','CH',CASE WHEN (Select InternalNumber from Address where State = SA.STATECODE) <=2 THEN 'PAS' ELSE ST.StudentCode END), ' '), 3, ' ')
Oracle 数据库搜索第一个 WHEN ... THEN 对,其中 expr 等于 compare_expr 并返回 return_expr。如果 WHEN ... THEN 对都不满足此条件,并且存在 ELSE 子句,则 Oracle 返回 else_expr。否则,Oracle 返回 null。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句