首页 > 解决方案 > CASE 表达式 WHEN 的更短替代方案?

问题描述

我有一个 SQL 表达式来将一些数据从一种格式映射到另一种格式:

CASE field
WHEN 'AU' THEN '036'
WHEN 'AT' THEN '040'
WHEN 'BE' THEN '056'
-- and so on
END

不幸的是,我需要将此表达式放入一个长度有限的文本框(NetSuite 公式字段)中,并且我拥有的选项数量不适合。在 Oracle 中是否有比 CASE 表达式更简洁的替代方法,以便我可以使用更少的字符来编写它?

标签: sqloraclecasenetsuite

解决方案


是的,使用以下DECODE()功能

DECODE(field,
'AU', '036',
'AT', '040',
'BE', '056'
)

推荐阅读