gpt4 book ai didi

oracle - 在 Oracle 中的 Select 语句中使用 Case 返回多列

转载 作者:行者123 更新时间:2023-12-04 13:56:12 28 4
gpt4 key购买 nike

我有一个场景,我需要根据主选择语句中的条件从不同的子查询中检索值。我试图使用 Case,但问题是 Case 不支持多列。有没有办法解决这个问题,或者有没有其他方法可以实现这一点。

我在简化查询中的场景

select col1,col2,
case when col3='E01089001' then
(select 1,3 from dual)
else
(select 2,4 from dual)
end
from Table1
where col1='A0529';

最佳答案

这是另一种编写它的方法,它可以解决对访问第二个表的次数超过必要的担忧。

select col1,col2,
case when col3='E01089001' then 1 else 2 end,
case when col3='E01089001' then 3 else 4 end
end
from Table1, dual
where col1='A0529';

你的例子使用了一个明显简化的子查询,所以这个版本看起来有点傻;完全没有理由加入 DUAL。但是在您的实际查询中,您大概有一个类似 SELECT a, b FROM otherTable WHERE someCondition 的子查询。 .因此,您可能希望使用实际的列名而不是数字文字和实际的表名而不是双,并将子查询条件移动到最终的 WHERE 子句中。

关于oracle - 在 Oracle 中的 Select 语句中使用 Case 返回多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/700658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com