34,594
社区成员
发帖
与我相关
我的任务
分享
create table tb(ID INT,SN VARCHAR(3),Type INT)
INSERT INTO tb
SELECT 1,'000',1 UNION ALL
SELECT 2,'000',2 UNION ALL
SELECT 3,'001',1 UNION ALL
SELECT 4,'002',1
select distinct sn from tb where sn = 1 and sn not in (select distinct sn from tb where type = 2)
drop table tb
/*
sn
----
001
(所影响的行数为 1 行)
*/
select distinct sn from tb where sn = 1 and sn not in (select distinct sn from tb where type = 2)
---------------------------------
-- Author: liangCK 小梁
-- Date : 2008-11-24 10:02:41
---------------------------------
--> 生成测试数据: @T
DECLARE @T TABLE (ID INT,SN VARCHAR(3),Type INT)
INSERT INTO @T
SELECT 1,'000',1 UNION ALL
SELECT 2,'000',2 UNION ALL
SELECT 3,'001',1 UNION ALL
SELECT 4,'002',1
--SQL查询如下:
SELECT *
FROM @T AS A
WHERE Type=1
AND NOT EXISTS(
SELECT *
FROM @T
WHERE SN=A.SN
AND ID<>A.ID
AND Type=2
)
/*
ID SN Type
----------- ---- -----------
3 001 1
4 002 1
(2 行受影响)
*/