当前位置: 代码迷 >> Oracle管理 >> 怎么SQL语句去除两列重复
  详细解决方案

怎么SQL语句去除两列重复

热度:125   发布时间:2016-04-24 04:17:39.0
如何SQL语句去除两列重复?
数据类型样式:
CREATE TABLE #t (id INT,col1 varchar(10),col2 varchar(10))
go
INSERT INTO #t VALUES(1, 'a1', 'a')
INSERT INTO #t VALUES(2, 'a1','b')
INSERT INTO #t VALUES(3, 'a2', 'a')
INSERT INTO #t VALUES(4, 'a2', 'b')
INSERT INTO #t VALUES(5, 'a3', 'c')
INSERT INTO #t VALUES(6, 'a3', 'd')
INSERT INTO #t VALUES(7, 'a3', 'e')
INSERT INTO #t VALUES(8, 'a4', 'f')
INSERT INTO #t VALUES(9, 'a5', 'f')
INSERT INTO #t VALUES(10, 'a6', 'g')

想得到的结果:
1 a1 a
4 a2 b
5 a3 c
8 a4 f
10 a6 g
用SQL语句查询可以实现吗?意思就是最终查询到的数据列1里没用重复项 列2里也没有,不一定要和我上面结果一样,只要不重复就行。
------解决方案--------------------

select id, col1, col2
  from (select id,
               col1,
               count(1) over(partition by col1 order by id) as cn1,
               col2,
               count(1) over(partition by col2 order by id) as cn2
          from #t)
 where cn1 = 1
   and cn2 = 1
  相关解决方案