小编som*_*ave的帖子

PL/SQL在CASE语句中返回一个列表

我需要一个CASE语句来返回一个字符串列表但我有一些语法问题.生成的SQL应该是这样的:

SELECT * FROM FRUIT WHERE COLOR IN ('RED', 'YELLOW')
Run Code Online (Sandbox Code Playgroud)

我正在尝试做什么(这不起作用):

SELECT * FROM FRUIT WHERE COLOR IN
CASE
    WHEN TYPE = *something*
    THEN ('RED', 'YELLOW')
    ELSE ('GREEN')
END
Run Code Online (Sandbox Code Playgroud)

这有效:

SELECT * FROM FRUIT WHERE COLOR IN
CASE
    WHEN TYPE = 1
    THEN 'RED'
    ELSE 'GREEN'
END
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

ORA-00907 missing right parenthesis
Run Code Online (Sandbox Code Playgroud)

当我使用多个COLOR ='X'或COLOR ='Y'时,它可以工作,但我想知道是否有一种方法只能使用一个CASE语句.提前致谢.

sql oracle case

1
推荐指数
1
解决办法
367
查看次数

标签 统计

case ×1

oracle ×1

sql ×1