2017-05-10 8 views
0

2つのテーブルをLIKEステートメントで比較したいと思います。しかし、私は比較のためにテキスト文字列を入力したくありません。だからではなく、使用する:2つの別々の列出力にLIKEを使用する

WHERE a.column1 LIKE '%pattern1%' OR a.column1 LIKE '%b.pattern2%' 

を私は、これは、複数の同類を使用して、はるかに最適なのである知っているが、このクエリの目的のために、これは私がする必要が正確に何であるクエリに

WHERE a.column1 LIKE b.column1 

をお伝えしたいと思います行う。

これは実際に可能かどうか確認してください。もしそうなら、私はどの構文を使用すべきですか?私はpostgresqlを使っていますが、awsやprestoの選択肢を使うこともできますが、もっと制限されていると思います。

上記の例を上記のようにしようとすると、結果がnullになります。テキストとして完全なリストを抽出してposixや配列関数を使用しようとすると、エラーメッセージが表示されます: '正規表現が正しくありません:数量オペランドが無効です'

アドバイスをいただければ幸いです。ありがとう!

答えて

2

試してみてください!

WHERE a.column1 LIKE '%' || b.column1 || '%' 

%はパターンが文字列であるため、一重引用符が必要です。
||連結の演算子です。

私が間違った仮定をした場合は、コメントしてください。

+0

Rahulに返信いただきありがとうございます。残念ながら、これはnullの結果も返します。私もWHERE '%'を使用しようとしました|| a.column1 || '%' ILIKE '%' || b.column1 || '%'だけでなく、結果もnullです。私はこれを行う方法が必要であると仮定しています! – afropunk

+0

wlとurのクロスプロダクトを使用していますか? –

+1

ちょっとラフル私はあまりにも早く話をしたかもしれない、私は順序を逆転したどこb.column1 LIKE '%' || a.column1 || '%'と私はいくつかの結果を得ています。彼らが今良いかどうかを確認するだけです。すぐに返信されます! – afropunk

関連する問題