2012-11-29 151 views
1

fieldidEmpIdReason的连接。有时候,由于编写不正确的代码逻辑,偶然发生的连接并不正确,它使用与当前记录不同的EmpId如何选择同一个表中两列连接的列?

如何找出这样的错误记录?

我试过这个,但不用留下,它的笨。

SELECT * FROM Table WHERE fieldid IN (SELECT Empid + Reason FROM EmployeeAttendance) 

我使用SQL Server 2008的EmpidReasonfieldid是VARCHAR处理。

谢谢。

+3

SQL-服务器:'SELECT * FROM表WHERE fieldid <> EMPID +理由或fieldid IS NULL'。用'||'替换Oracle和MySQL。 –

+0

@ypercube对,你的查询很有意义。但我也获得满足上述条件的记录。数据类型在玩? – theTuxRacer

+0

@ypercube你可以说你的评论作为答案?我想接受它。谢谢! – theTuxRacer

回答

2

对于SQL服务器:

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 ; 
相关问题