oracle:解码并子查询选择结果
|
我有一个oracle查询,其中一部分是使用DECODE计算一些值。例如:
SELECT ...,
(SELECT DECODE((SELECT 23 FROM DUAL),
0, null,
(SELECT 23 FROM DUAL))
FROM DUAL)
FROM ...
这里的值\“ 23 \”是在运行时计算的,它的联接非常复杂-多个表,使用PARTITION BY
等。因此,如果值不是\“ 0 \”,我想避免执行相同的子查询。有什么办法可以写这样的东西
SELECT ...,
(SELECT DECODE ((SELECT 23 FROM DUAL) as test,
0, null,
test)
FROM DUAL)
FROM ...
没有找到相关结果
已邀请:
5 个回复
森含械
CASE语句还可以增加清晰度,例如:
杰黔轿缺
使您可以在整个主选择中使用查询\“ q \”(允许子查询的地方)。称为WITH子句,通用表表达式或子查询分解。在Oracle-Base.com上了解有关它的更多信息。
杭难插
函数:
如果两个参数相等,
函数将返回returns9ѭ,否则它将返回第一个参数。
亨尖玛次酥
蕉衫