2

以下の SQL クエリで私がやろうとしていることを達成することは可能ですか? アイテム名が指定されたリストのいずれかと一致するかどうかを確認したい。

select
  case item_name
    when any ('PEN', 'PENCIL', 'PAPER', 'ERASER') then 'STATIONARY'
    else 'OTHER'
  end is_stationary
from items;

このクエリを試しましたが、不可能のようです。エラーメッセージは、

 ORA-00936: missing expression
 00936. 00000 -  "missing expression"
 *Cause:    
 *Action:
 Error at Line: 29 Column: 10

これを達成するための他の回避策はありますか?

4

2 に答える 2

5

@bvrの答えは、この問題を解決する最も一般的な方法です。しかし、代替構文であるgroup comparison conditionを正しく使用することに非常に近かったようです 。

select
  case
    when item_name = any ('PEN', 'PENCIL', 'PAPER', 'ERASER') then 'STATIONARY'
    else 'OTHER'
  end is_stationary
from items;
于 2013-08-27T23:09:58.853 に答える