2017-01-24 7 views
0
select * 
from DEMO_ORDER_ITEMS 
where (
    ORDER_ITEM_ID like '%1%' || 
    ORDER_ID like '%1%' || 
    PRODUCT_ID like '%1%' || 
    UNIT_PRICE like '%1%' 
); 

これは、すべての列からデータベースから検索したレコードを検索して取得する正しいクエリですか?すべての列を検索するSQLクエリを作成するには?

+1

これはあなたの宿題ですか? – AlastairG

+1

コードを実行して見ましたか?あなたがした場合、結果に何らかの誤りがありましたか? – Aaron

答えて

2

おそらくORが必要になります。

select * 
    from DEMO_ORDER_ITEMS 
    where (
      ORDER_ITEM_ID like '%1%' OR 
      ORDER_ID  like '%1%' OR 
      PRODUCT_ID like '%1%' OR 
      UNIT_PRICE like '%1%' 
     ); 

括弧はここでは必要ではないことに注意してください。しかしMatthew McPeakが気づいたように、彼らは問題を提起せず、ANDに他の条件を追加する必要がある場合に便利です。OR

||concatenation in Oracleの演算子です。例:

SQL> select 'a' || 'b' from dual; 

'A 
-- 
ab 
+1

括弧は必要ではありませんが、後でAND条件を追加する必要がある場合、誤ったクエリ結果を避けるのに役立ちますので、括弧は必要ありません。 –

+0

'||'はOracleの連結演算子ではありません。これはSQL標準で定義されたものです。 –

関連する問題