简体   繁体   English

获得不同的感应列值

[英]Getting distinct values of induvidual columns

I have a table A as below 我有一张表A如下

id| Name|Subject    
--|-----|-------
1 |Mano |Science   
2 |Pavi |Maths    
3 |Mano |Social    
1 |Kalai|Maths  
4 |Kalai|Science

I want distinct values for each column. 我希望每列都有不同的值。 So My output be like 所以我的输出就像

id|Name | Subject    
--|-----|--------
1 |Mano |Science    
2 |Pavi |Maths    
3 |Kalai|Social    
4 |     |

I have tried using cursors. 我尝试过使用游标。 But I didn't get what I needed. 但我没有得到我需要的东西。 Anybody help me in getting this 有人帮助我得到这个

You seem to just want a list of the distinct values, without regards to what appears together. 您似乎只想要一个不同值的列表,而不考虑一起出现的内容。 This isn't very SQL'ish, but can be done: 这不是非常SQL,但可以做到:

select row_number() over (order by n.seqnum) as firstcol, n.name, s.subject
from (select name, row_number() over (order by name) as seqnum
      from t
      group by name
     ) n full outer join
     (select subject, row_number() over (order by subject) as seqnum
      from t
      group by subject
     ) s
     on s.seqnum = n.seqnum;
select    *

from     (select  col,val,dense_rank () over (partition by col order by val)  as dr    
          from    mytable unpivot (val for col in (name,subject)) u
          ) pivot (min(val) for col in ('NAME','SUBJECT'))    

order by  dr

+----+-------+---------+
| DR | NAME  | SUBJECT |
+----+-------+---------+
|  1 | Kalai | Maths   |
|  2 | Mano  | Science |
|  3 | Pavi  | Social  |
+----+-------+---------+

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM