数据库数据
一个表,3个字段,
分别是A,B,C.数据形式是
S 001 01
S 001 02
S 002 01
U 003 01
V 004 01
X 005 01
X 005 02希望得到的结果:
数据中前2个字段相同,并且是多件的数据保留。
即:
S 001 01
S 001 02
X 005 01
X 005 02
这样的数据。
一个表,3个字段,
分别是A,B,C.数据形式是
S 001 01
S 001 02
S 002 01
U 003 01
V 004 01
X 005 01
X 005 02希望得到的结果:
数据中前2个字段相同,并且是多件的数据保留。
即:
S 001 01
S 001 02
X 005 01
X 005 02
这样的数据。
GO
CREATE TABLE TB( A VARCHAR(10), B VARCHAR(10), C VARCHAR(10))
INSERT TB SELECT 'S' ,'001', '01'
INSERT TB SELECT 'S' ,'001', '02'
INSERT TB SELECT 'S' ,'002', '01'
INSERT TB SELECT 'U','003' ,'01'
INSERT TB SELECT 'V', '004', '01'
INSERT TB SELECT 'X', '005', '01'
INSERT TB SELECT 'X', '005', '02'
SELECT * FROM TB T WHERE EXISTS(SELECT A,B FROM TB WHERE A=T.A AND B=T.B GROUP BY A,B HAVING COUNT(*)>1)
/*A B C
---------- ---------- ----------
S 001 01
S 001 02
X 005 01
X 005 02*/
create table tab(a char(1),b char(3),c char(2))go insert tab
select 'S' ,'001','01'
union select 'S' ,'001' ,'02'
union select 'S' ,'002' ,'01'
union select 'U' ,'003' ,'01'
union select 'V' ,'004' ,'01'
union select 'X' ,'005' ,'01'
union select 'X' ,'005' ,'02'
select * from tab t where (select count(1) from tab where t.a=a and t.b=b) > 1
drop table tab