【发布时间】:2019-04-08 15:53:38
【问题描述】:
我有一个 SQL 表达式来将一些数据从一种格式映射到另一种格式:
CASE field
WHEN 'AU' THEN '036'
WHEN 'AT' THEN '040'
WHEN 'BE' THEN '056'
-- and so on
END
不幸的是,我需要将此表达式放入有长度限制的文本框(NetSuite 公式字段)中,并且我拥有的选项数量不适合。在 Oracle 中是否有比 CASE 表达式更简洁的替代方法,以便我可以使用更少的字符来编写它?
【问题讨论】:
-
将其写为
decode可能有效。但这似乎需要某种形式的翻译表,而不是很长的decode声明。 -
@JustinCave 我同意,但不幸的是,NetSuite 没有办法在公式中加入表格......系统试图隐藏数据库,这对于我们这些使用过的人来说非常烦人到 SQL。
-
@Wolfgang - 您可以通过连接添加一个执行翻译的视图;而是查询该视图?
-
难道也没有办法调用查询翻译表的函数吗?
-
@AlexPoole 它也不授予对底层数据库的任何访问权限来创建视图。