【发布时间】:2019-08-16 18:34:50
【问题描述】:
我有一个带有字段 YEAR 和 STATUS 的 Oracle 表 CUST。我正在尝试编写一个语句来选择记录 where ((CUST.YEAR = '2017' and CUST.STATUS = 'ACTIVE') 和 where (CUST.YEAR = '2018' and CUST.STATUS = 'ACTIVE' ))。当这两个陈述都为真时,我想返回 '1' else '0'
select *
from cust
where cust.year = '2017' and cust.status = 'Active'
返回正确的行数 (394)。
select *
from cust
where cust.year = '2018' and cust.status = 'Active'
返回正确的行数 (451)。
这是车轮脱落的地方(由于我对 SQL 脚本缺乏经验)。我尝试将这两个 select 语句结合起来,但由于语法不正确,我要么得到数万行,要么得到错误。这是在尝试使用 case 语句返回比较结果之前(如果这两个条件都存在,则为 '1' 否则为 '0')。
我意识到这可能是非常基本的东西,但到目前为止语法已经超出了我的范围。有人能帮我构建这个语句吗?
我在这个论坛上发帖的几次中学到了一些有助于让我更加自给自足的东西,所以我提前表示感谢。
【问题讨论】:
-
我尝试将这两个 select 语句合并...你尝试了什么?
-
至于您的
CASE声明:SELECT CASE WHEN cust.year IN ('2017', '2018') and cust.status = 'Active' THEN 1 ELSE 0 END, cust.year, cust.status, cust.whatever...。
标签: sql oracle case multiple-conditions