使用sql的case(and)与case组合成一个单独的分组

9gm1akwq  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(422)

我有一个数据集,在这里我使用一个选择案例将来源组合成新的分组,在这个练习中我称之为收入类型。我掌握的数据是:

SOURCE       DOLLARS    BONUS  
 -------------- ----------- ------- 
  RADIO A             1902       0  
  RADIO B            21093      12  
  RADIO C            19203   35432  
  SATELLITE             93       0  
  LOCAL TV            9321       0  
  CABLE TV             903       0  
  SECONDARY TV        3902       0  
  RADIO C           594032    3902  
  RADIO B            40983     190  
  CABLE TV           18930       0  
  LOCAL TV           44032       0  
  RADIO C         38932098     390  
  SATELLITE           3083       0  
  LOCAL TV       203983209       0  
  CABLE TV        32329329       0  
  SECONDARY TV        8230       0  
  RADIO B              349       0  
  RADIO C               90       0

我正在用一个案例分组到广播或电视中。

SELECT CASE source
WHEN 'RADIO A' THEN 'RADIO'
WHEN 'RADIO B' THEN 'RADIO'
WHEN 'RADIO C' THEN 'RADIO'
WHEN 'SATELLITE' THEN 'TV'
WHEN 'LOCAL TV' THEN 'TV'
WHEN 'CABLE TV' THEN 'TV'
WHEN 'SECONDARY TV' THEN 'TV'
ELSE 'OTHER' END AS income_type

这是按计划进行的。我现在试着用一个例子,在这个例子中,在收音机中创建新的组,因为在收音机中,现在有“hit radio”和“standard radio”,这两个词以后需要加起来。命中率定义为奖金>0。如果奖金为0,则为标准无线电。只有收音机才能收到奖金。我当前的查询是…但不起作用:

SELECT CASE source
WHEN 'RADIO A' AND BONUS > 0 THEN 'HIT RADIO'
WHEN 'RADIO A' AND BONUS = 0 THEN 'STANDARD RADIO'
WHEN 'RADIO B' AND BONUS > 0 THEN 'HIT RADIO'
WHEN 'RADIO B' AND BONUS = 0 THEN 'STANDARD RADIO'
WHEN 'RADIO C' AND BONUS > 0 THEN 'HIT RADIO'
WHEN 'RADIO C' AND BONUS = 0 THEN 'STANDARD RADIO'
WHEN 'SATELLITE' THEN 'TV'
WHEN 'LOCAL TV' THEN 'TV'
WHEN 'CABLE TV' THEN 'TV'
WHEN 'SECONDARY TV' THEN 'TV'
ELSE 'OTHER' END AS income_type

任何帮助都将不胜感激!

5t7ly7z5

5t7ly7z51#

我建议您的案例陈述使用不同的形式,例如:

CASE
    …
    WHEN source = 'RADIO C' AND bonus = 0 THEN 'standard radio'
    WHEN source IN ('SATELLITE', 'LOCAL TV', 'CABLE TV', …) THEN 'TV
    ELSE 'OTHER' 
  END AS income_type

如您所见,可以删除列名 source 在case子句的开头,可以更自由地在其主体中表示case(在这里您可以使用普通的sql运算符,例如 IN ).
hth公司

相关问题