gpt4 book ai didi

sql - 单个SQL SELECT从一个表行返回多行

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

我们有一个表格,其形式为:

ID,Value1,Value2,Value3
1,2,3,4

我们需要将其转化为。
ID,Name,Value
1,'Value1',2
1,'Value2',3
1,'Value3',4

在一个SELECT语句中(即没有UNION)有一种聪明的方法吗?列名称Value1,Value2和Value3是固定的且恒定的。

该数据库是oracle 9i。

最佳答案

这适用于Oracle 10g:

select id, 'Value' || n as name,
case n when 1 then value1 when 2 then value2 when 3 then value3 end as value
from (select rownum n
from (select 1 from dual connect by level <= 3)) ofs, t

我认为Oracle 9i有递归查询吗?无论如何,我非常确定它具有CASE支持,因此即使它没有递归查询,也可以执行“(从双联合中选择1,从双联合中选择2,从双联合中选择3,从双重中选择3)”代替。对于Oracle,滥用递归查询会更普遍一些。 (不过,使用联合生成行可移植到其他数据库中)

关于sql - 单个SQL SELECT从一个表行返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/887870/

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