私はDB2を初めて使用しており、非常に簡単な例を除いてEXCEPT
クエリに関するものは見つかりませんでした。私はTABLE_A
に表示される値を返すために2つのテーブルの値を比較しようとしていますが、TABLE_B
にはありません。問題は、比較される列が正確にはキーではないが、最初にいくつかの操作が必要であるということです。 TABLE_A
からDB2でのSELECT SQLクエリの除外
ID_1
フィールドには、次のようになります。だから我々は、このサンプル行の000999
のキー値を取得し、各IDからのデータをマッサージすることにより111-000999
:TABLE_B
から000 999
ID_2
フィールドのようになります。これにより、データが両方のテーブルに存在するため、この行がクエリ結果から除外されます。
SELECT REPLACE (ID_1, ' ','') AS ID_1_TRIM
FROM MYDB.TABLE_A
EXCEPT
SELECT SUBSTRING(ID_2,5,10)
FROM MYDB.TABLE_B
この構文は動作しません、マッサージのキー値もTABLE_B
に表示されていても、TABLE_A
内のすべての値を返すように表示されます。
ありがとう、私はこれらの選択肢を試してきました。結果は戻っても 'TABLE_A'のすべての値です。それぞれの 'SELECT'クエリを別々に実行するとき、返される値は同じ形式であり、一致する必要があります。 – joshi123
は本当に奇妙です。 SELECT * FROM MYDB.TABLE_A f1例外がMYDB.TABLE_B f2 にキャストされている場合(trim(REPLACE(f1.ID_1、 ''、 '')as varchar(15))= cast(trim(SUBSTRING (f2.ID_2,5,10)as varchar(15)) – Esperento57
データに問題があるように見えますが、トリミングのテクニックは隠されたスペースがあって便利でした。ありがとう – joshi123