2012-08-07 5 views
7
SELECT * FROM abc WHERE column1 IN (a1,b1,c1) 

この選択クエリでLIKEを使用したいと思います。以下のクエリと同様に、INを使用してLIKE文を書くことができます。DB2でINを使ってLIKEを使用するには?

SELECT * FROM abc WHERE column1 LIKE IN (a%,b%,c%) 

答えて

6

できません。あなたがinlikeを組み合わせることはできません

column1 LIKE 'a%' OR column1 LIKE 'b%' OR column1 LIKE 'c%' 
8

:としてそれを書きます。別の比較としてそれを書いてください:

select column1 
from abc 
where column1 like 'a%' or column1 like 'b%' or column1 like 'c%' 
2

あなたはOR条件のリストを使って条件を指定することができます。

from句で一時テーブルまたはサブクエリを使用することもできます。次のfrom句のサブクエリの例を示します。

select column1 
    from abc 
    , table(
     (select 'a%' as term from SYSIBM.SYSDUMMY1) 
     union all 
     (select 'b%' from SYSIBM.SYSDUMMY1) 
     union all 
     (select 'c%' from SYSIBM.SYSDUMMY1) 
    ) search_list 
    where abc.column1 like search_list.term; 
+0

私はDB2のエキスパートではありません。 from句のこのサブクエリは、ANSI構文ではありません。 –

+0

DB2では、おそらく '... FROM abc 'のようなものです(SYSIBM.SYSDUMMY1 UNION ALL SELECT' b% 'FROM SYSIBM.SYSDUMMY1 UNION ALL SELECT' c% 'FROM SYSIBM.SYSDUMMY1)search_list WHERE ... ' –

+0

SYSIBM.SYSDUMMY1で編集しました(これはMySQLまたはOracleのFROM DUALと同等です) –

関連する問題