[英]Split InformationText into two columns without duplicates or NULL values
[英]How to split a single column values into two columns without null values?
下面是原始表的样子。
| Catid| Name |
| ---- | ---- |
|1 | ramesh|
|1 | suresh|
|1 | mahesh|
|2 | rahul |
|2 | rajesh|
我需要作为
|catname1 | catname2|
| ---- | ---- |
|ramesh | rahul |
|suresh | rajesh |
|mahesh | |
我尝试了以下查询,但这会产生空值
select (case when s1.catid=1 then s1.name end) as cat1name,
(case when s1.catid=2 then s1.name end) as cat2name
from deemucty.sample12 as s1
由于您没有按名称提供订购商品,因此我按字母顺序对其进行订购。
select min (case catid when 1 then name end) as catname1
,min (case catid when 2 then name end) as catname2
from (select row_number () over (partition by catid order by name) as rn
,catid
,name
from deemucty.sample12
) t
group by rn
order by rn
;
您可以通过在一个catid的所有名称与另一个catid的所有名称之间进行完全外部联接来做到这一点:
select t1.name as catname1,
t2.name as catname2
from (
select name, row_number() over (order by name) as rn
from the_table
where catid = 1
) t1
full join (
select name, row_number() over (order by name) as rn
from the_table
where catid = 2
) t2 on t1.rn = t2.rn
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.