我有一个select语句。当一个条件影响一个字段时,这就是它通常的工作方式:
select
case when <condition 1>
then '1'
end as field1
, case when <condition 2>
then '2'
end as field2
可以最终确定一个字段(例如field1或field2)。但如果条件应该影响两个领域呢?就我所见,我无法使用当前的选择结构。
我是否需要重复该条件(因此相同的条件会在两个单独的字段中产生影响(如下所示)?
select
case when <condition 1>
then '1'
end as field1
, case when <condition 1>
then '2'
end as field2
或者第二个字段是否需要在完全不同的if-then语句中处理?关于如何处理这种情况的任何建议?我是PL / SQL的新手。
答案 0 :(得分:2)
为了创建两个不同的变量,您需要重复case
语句。
你的第二个提法有两个case
陈述是正确的方法。
答案 1 :(得分:1)
SELECT to_number(to_char(marriage_date,&#39; YYYY&#39;))年,
count(id_marriage)NUMBER_OF_MARRIAGES,
sum(CASE WHEN REASON_OF_EXPIRATION != 'Death' THEN 1
ELSE 0
end ) NUMBER_OF_DIVORCES,
sum(case when REASON_OF_EXPIRATION = 'Death' THEN 1
else 0
end) NUMBER_OF_Deaths
FROM marriage GROUP BY to_number(to_char(marriage_date,&#39; YYYY&#39;));第二种方法是正确的,请找一个示例代码。