1

2 つのテーブルに存在する列があります。表 1 では、この列にはバイナリ形式 ( int)1との値が0含まれていますが、他の表には と の形式'Y'で列が含まれています'N'

基本的に、その列のテーブル 2 の値とは異なる値を含むテーブル 1 の行を表示する必要があります。比較のために 1 から Y および 0 から N を計算するにはどうすればよいですか?

例:

表1:

DateRecorded SchoolName StudentName isAbsent hasPassed
------------ ---------- ----------- -------- ---------
2011-04-03   ABC        John        Y        Y
2011-04-05   ABC        John        N        Y 

表 2:

DateRecorded SchoolName StudentName isAbsent hasPassed
------------ ---------- ----------- -------- ---------
2011-04-03   ABC        John        0        1
2011-04-05   ABC        John        0        1

行を返す必要があります:

2011-04-03   ABC        John        Y        Y

この行は表 2 の同じ行と競合しているため、表 1 から。

4

1 に答える 1

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

SQL フィドルのデモ

于 2012-07-06T04:04:36.947 に答える