select a.大类,a.名称 as 标记1,a.数量,a.重量,b.名称 as 标记2,b.数量,b.重量 from (select 大类,名称,数量,重量,rownum rn from t1 where 标记=1) a full join (select 大类,名称,数量,重量,rownum rn from t1 where 标记=2) b on a.rn=b.rn order by 大类;这样试试,未测试
select a.大类,a.名称 as 标记1,a.数量,a.重量,b.名称 as 标记2,b.数量,b.重量 from (select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=1) a full join (select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=2) b on a.rn=b.rn order by 大类;这样
这样也不行吧……with t1 as( select 1 大类,'苹果' 名称,2 数量,10 重量,1 类别,1 标记 from dual union all select 1 大类,'橘子' 名称,3 数量,9 重量,1 类别,2 标记 from dual union all select 1 大类,'鸭梨' 名称,1 数量,4 重量,1 类别,2 标记 from dual union all select 1 大类,'葡萄' 名称,5 数量,12 重量,2 类别,1 标记 from dual union all select 1 大类,'杏' 名称,3 数量,6 重量,2 类别,2 标记 from dual union all select 2 大类,'猪肉' 名称,1 数量,500 重量,1 类别,1 标记 from dual union all select 2 大类,'牛肉' 名称,2 数量,2600 重量,1 类别,2 标记 from dual union all select 2 大类,'羊肉' 名称,5 数量,4700 重量,1 类别,2 标记 from dual ) select nvl(a.大类,b.大类),a.名称 as 标记1,a.数量,a.重量,b.名称 as 标记2,b.数量,b.重量 from (select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=1) a full join (select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=2) b on a.rn=b.rn and a.大类=b.大类 order by 1;这样可以了 - -
select a.大类,a.名称 as 标记1,a.数量,a.重量,b.名称 as 标记2,b.数量,b.重量
from
(select 大类,名称,数量,重量,rownum rn from t1 where 标记=1) a
full join
(select 大类,名称,数量,重量,rownum rn from t1 where 标记=2) b
on a.rn=b.rn
order by 大类;这样试试,未测试
select a.大类,a.名称 as 标记1,a.数量,a.重量,b.名称 as 标记2,b.数量,b.重量
from
(select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=1) a
full join
(select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=2) b
on a.rn=b.rn
order by 大类;这样
select 1 大类,'苹果' 名称,2 数量,10 重量,1 类别,1 标记 from dual union all
select 1 大类,'橘子' 名称,3 数量,9 重量,1 类别,2 标记 from dual union all
select 1 大类,'鸭梨' 名称,1 数量,4 重量,1 类别,2 标记 from dual union all
select 1 大类,'葡萄' 名称,5 数量,12 重量,2 类别,1 标记 from dual union all
select 1 大类,'杏' 名称,3 数量,6 重量,2 类别,2 标记 from dual union all
select 2 大类,'猪肉' 名称,1 数量,500 重量,1 类别,1 标记 from dual union all
select 2 大类,'牛肉' 名称,2 数量,2600 重量,1 类别,2 标记 from dual union all
select 2 大类,'羊肉' 名称,5 数量,4700 重量,1 类别,2 标记 from dual
)
select nvl(a.大类,b.大类),a.名称 as 标记1,a.数量,a.重量,b.名称 as 标记2,b.数量,b.重量
from
(select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=1) a
full join
(select 大类,名称,数量,重量,row_number()over(partition by 大类 order by rownum) rn from t1 where 标记=2) b
on a.rn=b.rn and a.大类=b.大类
order by 1;这样可以了 - -