使用Oracle 11。 试图为一个概念性的演示写一些简单的代码。为了说明我想达到的目的,想象一下我有以下内容 SOMETABLE
有两列。ID和NAME,就像这样。
ID NAME
---------
1 Tom
2 Larry
3 David
4 Steve
我想计算第三列,如果第二列符合两个硬编码值中的一个,则为真。 像这样(当然,这是不可能的。
Select ID,
NAME,
(NAME in ('Larry', 'David')) as IS_FAVORITE
from SOMETABLE
并希望得到这样的输出...
ID NAME IS_FAVORITE
----------------------
1 Tom FALSE
2 Larry True
3 David True
4 Steve FALSE
令我惊讶的是,我被告知Oracle没有booleans的概念,我应该使用 "数字字符串 "或类似的东西,所以这也是好的......。
ID NAME IS_FAVORITE
----------------------
1 Tom 'N'
2 Larry 'Y'
3 David 'Y'
4 Steve 'N'
那么你可以使用 IN
在这样的列表达式中使用操作符?如果没有,如何计算我想要的列?
你可以用以下方法实现你的预期输出 case
表达方式:
Select ID,
NAME,
CASE
WHEN
NAME in ('Larry', 'David')
THEN
'TRUE'
ELSE
'FALSE'
END as IS_FAVORITE
from SOMETABLE