单个SQL SELECT从一个表行返回多个行
发布时间:2020-05-23 15:32:15 所属栏目:MsSql 来源:互联网
导读:我们有一个表格形式: ID,Value1,Value2,Value31,2,3,4 我们需要将其转化为. ID,Name,Value1,Value1,21,Value2,31,Value3,4 在一个SELECT语句中是否有一种聪明的方法(即没有UNION)?列名称Value1,Value2和Value3是固定且常量的. 该数据库是oracle 9i. 这适用
|
我们有一个表格形式: 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来自双重)”.对于Oracle来说,滥用递归查询更为通用. (但是,使用联合生成行可以移植到其他数据库) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
