表TA编号 名称 状态
----------------------------------
1000 1000 0
1001 1001 0
1002 1002 1
1003 1003 1
1004 1004 1
1005 1005 1
表TB
编号 名称 状态
----------------------------------
1000 1000 1
1001 1001 0
1003 1003 0
1005 1005 1查询出表A中有,且状态与表B不相等的记录(表TA中有,表TB中没有的记录也要查出来)
查询出来的结果如下编号 名称
---------------------
1000 1000
1002 1002
1003 1003
1004 1004
----------------------------------
1000 1000 0
1001 1001 0
1002 1002 1
1003 1003 1
1004 1004 1
1005 1005 1
表TB
编号 名称 状态
----------------------------------
1000 1000 1
1001 1001 0
1003 1003 0
1005 1005 1查询出表A中有,且状态与表B不相等的记录(表TA中有,表TB中没有的记录也要查出来)
查询出来的结果如下编号 名称
---------------------
1000 1000
1002 1002
1003 1003
1004 1004
IF OBJECT_ID('[TA]') IS NOT NULL
DROP TABLE [TA]
GO
CREATE TABLE [TA] ([编号] [int],[名称] [int],[状态] [int])
INSERT INTO [TA]
SELECT '1000','1000','0' UNION ALL
SELECT '1001','1001','0' UNION ALL
SELECT '1002','1002','1' UNION ALL
SELECT '1003','1003','1' UNION ALL
SELECT '1004','1004','1' UNION ALL
SELECT '1005','1005','1'--> 生成测试数据表: [TB]
IF OBJECT_ID('[TB]') IS NOT NULL
DROP TABLE [TB]
GO
CREATE TABLE [TB] ([编号] [int],[名称] [int],[状态] [int])
INSERT INTO [TB]
SELECT '1000','1000','1' UNION ALL
SELECT '1001','1001','0' UNION ALL
SELECT '1003','1003','0' UNION ALL
SELECT '1005','1005','1'
-->SQL查询如下:
SELECT * FROM [TA]
EXCEPT
SELECT * FROM [TB]
/*
编号 名称 状态
----------- ----------- -----------
1000 1000 0
1002 1002 1
1003 1003 1
1004 1004 1(4 行受影响)
*/
(select 1 from tb where 编号=a.编号 and 状态=a.状态D)
select a.* from TA a left join TB b on a.编号=b.编号
where b.编号 is null or a.状态<>b.状态 /*
编号 名称 状态
----------- ----------- -----------
1000 1000 0
1002 1002 1
1003 1003 1
1004 1004 1(所影响的行数为 4 行)
*/
SELECT *
FROM [TA]
WHERE CHECKSUM(*)
NOT IN (
SELECT CHECKSUM(*)
FROM [TB]
)
/*
编号 名称 状态
----------- ----------- -----------
1000 1000 0
1002 1002 1
1003 1003 1
1004 1004 1(4 行受影响)
*/
A.编号,A.名称
FROM
表A A
LEFT OUTER JOIN
表B B
ON
A.编号 = B.编号
AND
A.名称 = B.名称
AND
A.状态 <> B.状态
A.编号,A.名称
FROM
[TA] A
LEFT OUTER JOIN
[TB] B
ON
A.编号 = B.编号
AND
A.名称 = B.名称
AND
A.状态 <> B.状态
WHERE
B.状态 IS NULL
楼主,掉了一个条件,不好意思。