![](/img/trans.png)
[英]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.