sql - 是否可以在 Oracle SQL 中将 CASE 与 ANY() 一起使用?

标签 sql oracle case conditional-statements

是否可以实现我在下面的 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

是否有任何其他解决方法来实现此目的?

最佳答案

试试这个

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

CASE .. IN .. REFERENCE LINK

关于sql - 是否可以在 Oracle SQL 中将 CASE 与 ANY() 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462402/

相关文章:

sql - SQL 中的无表达式 CASE 中的多个 WHEN?

mysql - 在三个不同的列上使用 MAX、WHERE 和 GROUP BY 提高 SQL 查询的速度

mysql - SQL-选择 2 列的最新不同组合

sql - MySQL:为什么使用 UTF-8

java - JDBC : Oracle Application Server and "The Network Adapter could not establish the connection" error

sql - 关系划分-模仿 'ONLY IN'

mysql - 允许 CASE 语句重复匹配

sql - INNER JOIN on UPDATE with WHERE 更新 Postgres 中的每条记录

oracle - 创建一个 pl/sql 函数来查找闰年

sql - 在 postgresql 中,当 case 语句为 true 时添加条件