2017-07-07 13 views
1

私の状況 - 私はいくつかの列を持つ2つのテーブルを持つ必要があり、それらの2つのテーブルの特定の列で特定の文字列を見つける必要があります。たとえば、検索文字列は「ExampleString1」、「ExampleString2%」など約20文字列、各テーブルの約5〜6列になります。ORACLE SQLの複数の列で複数の文字列を検索する方法where where

複数の列で少なくとも1つの文字列を見つけるために以下を使用していますが、これも機能しません。

select * from table1 a where upper('ExampleString1%') in (a.Column1, a.column2, a.column3) 

私はいくつかの基本的なSQLクエリを行うことができますが、私はSQLに精通していません。私は解決策を知ること、または私が解決策に到達するために勉強できる資料を知りたい。

おかげ RK

+1

あなたがワイルドカードとして '%'を使用しようとしている場合、その構文は動作しません。 。 '%'は 'IN'ではなく' LIKE'で動作し、それはオペレータの間違った側にあります。 – McGlothlin

+0

複数のlikeやorsで何が問題になっていますか? – xQbert

答えて

3

あなたはすべての必須項目を組み合わせて、その上のチェックを実行することができます。

select * 
from table1 a 
where NVL(upper(a.Column1),'')||NVL(upper(a.column2),'')||NVL(upper(a.column3),'') like upper('ExampleString1%') 
+2

代わりに '||'を使用して連結する必要がありますか?私はここで働くことを知りませんでした。 – McGlothlin

+0

述語のlhsにto_upperを使用することを忘れないでください。 – jeff6times7

+0

@McGlothlin:私の答えを更新しました。 SQLサーバー開発者に使用されました:) –

関連する問題