我有一个数据集,在这里我使用一个选择案例将来源组合成新的分组,在这个练习中我称之为收入类型。我掌握的数据是:
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
任何帮助都将不胜感激!
1条答案
按热度按时间5t7ly7z51#
我建议您的案例陈述使用不同的形式,例如:
如您所见,可以删除列名
source
在case子句的开头,可以更自由地在其主体中表示case(在这里您可以使用普通的sql运算符,例如IN
).hth公司