別の列のどのエントリとも似ていない、ある列のすべてのエントリのリストを取得するクエリを実行する必要があります。つまり、次のようになります。
SELECT DISTINCT columnA
FROM tableA
WHERE columnA NOT LIKE (SELECT columnB FROM tableA)
明らかに、上記のクエリは機能しません。達成しようとしていることを明確にすることを期待してのみ提供しています。例として、私の列に次のものが含まれているとします。
COLUMNA:
ABCD
ABCE
BCDE
BCDF
BCDEF
GHIJ
GHIK
COLUMNB:
ABC
DEF
HIJ
私の望ましい結果は次のとおりです。
BCDE
BCDF
GHIK
テーブルの列には合計 396 個の値があるため、値を手動で入力するだけでは実行できません。さらに、例に示されているように、columnB の値は常に columnA の値の部分文字列になるため、それを念頭に置いてクエリで比較を行う必要もあります。
また、この質問が他の場所で既に回答されている場合はお詫び申し上げます。検索を行いましたが、この特定の要件に対処していると解釈できるものは見つかりませんでした。
新しい情報を追加する* *
したがって、前述のように、2 つの列が異なるテーブルにあるという大きな間違いを犯しました。とはいえ、califax の以下の提案を次のように変更するのは簡単でした。
SELECT DISTINCT COLUMNA FROM TABLE1 T1 LEFT JOIN TABLE2 T2 on T1.COLUMNA LIKE '%' + T2.COLUMNB + '%' AND T2.COLUMNB IS NULL
ただし、COLUMNA からのエントリの完全なリストは引き続き返されます。COLUMNA のエントリの部分文字列である COLUMNB にエントリがあることを確認しました - これがフィルタリングされない理由はありますか?
ありがとう。