2个表中存在一列。在表1中,此列包含二进制形式(int
),1
和0
的值,而另一个表包含'Y'
和{{1}形式的列}。
基本上我需要在表1中显示包含与该列的表2中的值不同的值的行。如何计算1到Y和0到N进行比较?
示例:
表1:
'N'
表2:
DateRecorded SchoolName StudentName isAbsent hasPassed
------------ ---------- ----------- -------- ---------
2011-04-03 ABC John Y Y
2011-04-05 ABC John N Y
应该返回行:
DateRecorded SchoolName StudentName isAbsent hasPassed
------------ ---------- ----------- -------- ---------
2011-04-03 ABC John 0 1
2011-04-05 ABC John 0 1
表1中的,因为此行与表2中的同一行发生冲突。
答案 0 :(得分:4)
试试这个:
SELECT * FROM tbl1
EXCEPT
SELECT
daterecorded,
schoolname,
studentname,
CASE isAbsent WHEN 1 THEN 'Y' WHEN 0 THEN 'N' END AS isAbsent,
CASE hasPassed WHEN 1 THEN 'Y' WHEN 0 THEN 'N' END AS hasPassed
FROM tbl2