2016-04-13 8 views
0

これらの行のみを取得します。ここで、column1の値には、同じ表と同じ行のcolumn2の値が含まれています。Select * from table where column1 LIKE column2

例えば、テーブルは次のようなものに見える場合:

enter image description here

をしかし、私はこれだけのように、COLUMN1の値はCOLUMN2の一部と一致する行を取得したい:

enter image description here すなわちをcol2のようなcol1かcol2のどちらかにcol1が含まれています。私のようなパターンを持つ列を生成し、次のようにWHERE条件で同じパターンを使用している同じもののため

SELECT '''%''' + cast(t.col1 AS varchar(200))+ '''%''' as MatchThis, 
FROM [practice].[tables].[Temp1] t 
WHERE t.col2 LIKE '''%''' + cast(t.col1 AS varchar(200))+ '''%''' 

これはLIKEは常にハードコード化されたQUOTED値を取るかもしれないので、支援しておらず、クエリの結果の行すべてと比較します。

私もCONTAINSで試してみましたが、これはうまくいきません。

このままでは、他の方法はありません。

+1

'Peps ** i **'は 'Peps ** o ** dent'の一部ではありません。そして、** ** ** ** ** ** ** ** ** ** ** ** ** ** ** Ifeは、大文字/小文字を考慮した場合でも、「Met ** l ** ife」の一部ではありません。 –

答えて

1

これは必要な操作ですか?

select t.* 
from [practice].[tables].[Temp1] t 
where t.col2 like '%' + col1 + '%'; 

質問に比べてクエリが複雑すぎるようです。問題は2つの列を比較することです。そのため、WHERE節にある種の条件を示唆する必要があります。

関連する問題