sql - CASE 表达式 WHEN 的更短替代方案?
问题描述
我有一个 SQL 表达式来将一些数据从一种格式映射到另一种格式:
CASE field
WHEN 'AU' THEN '036'
WHEN 'AT' THEN '040'
WHEN 'BE' THEN '056'
-- and so on
END
不幸的是,我需要将此表达式放入一个长度有限的文本框(NetSuite 公式字段)中,并且我拥有的选项数量不适合。在 Oracle 中是否有比 CASE 表达式更简洁的替代方法,以便我可以使用更少的字符来编写它?
解决方案
是的,使用以下DECODE()
功能:
DECODE(field,
'AU', '036',
'AT', '040',
'BE', '056'
)
推荐阅读
- android - 在新的 Google 地点选择器中找不到样式/PlacesAutocompleteThemeOverlay
- assembly - x86 / x64 使用相对跳转从子程序返回
- android - 在颤振插件类中捕获 onNewIntent()
- assembly - 程序集:静态/全局变量的位置
- mysql - MySQL 动态 ORDER BY
- javascript - 如何使所有手风琴默认在浏览器中打开并在移动视图中关闭?
- java - FTPClient - 以流方式向 FTP 服务器发送 Noop
- c# - 通过键 c# 字典的一部分获取值
- c# - 具有实体版本控制/事件溯源的存储库模式
- java - 硒中的多个选项卡