列fieldid
是EmpId
和Reason
的串联。有时,由于代码逻辑编写不正确,连接不会正确发生,并且使用与属于当前记录的EmpId
不同的SELECT * FROM Table WHERE fieldid IN (SELECT Empid + Reason FROM EmployeeAttendance)
。
如何找出这些错误的记录?
我试过这个,但不用留下来,这是愚蠢的。
Empid
我正在使用SQL SERVER 2008. Reason
,fieldid
和{{1}}是varchars。
感谢。
答案 0 :(得分:2)
对于SQL-server:
SELECT *
FROM TableX
WHERE fieldid <> Empid + Reason
OR fieldid IS NULL AND (Empid + Reason) IS NOT NULL
OR fieldid IS NOT NULL AND (Empid + Reason) IS NULL ;