sql - SQL 'CASE' 子句 - 列名称本身 CASE
问题描述
我正在尝试从我的表“EXAMPLE_1”中选择多个列,并在其中一个上调用 CASE 表达式。
执行时,它会按预期显示每一列,但我称之为 CASE 表达式的那一个的名称为“CASE”。
我该如何解决?我找不到任何导致这种情况的错别字。
SELECT
NAME AS LAST_NAME,
FIRST_NAME AS FIRST_NAME,
BIRTH_DATE AS BIRTH_DATE,
CASE UPPER(BUNDESLAND)
WHEN 'BW' THEN 'Baden-Wuerttemberg'
WHEN 'BY' THEN 'Bayern'
WHEN 'BE' THEN 'Berlin'
WHEN 'BB' THEN 'Brandenburg'
WHEN 'HB' THEN 'Bremen'
WHEN 'HH' THEN 'Hamburg'
WHEN 'HE' THEN 'Hessen'
WHEN 'MV' THEN 'Mecklenburg-Vorpommern'
WHEN 'NI' THEN 'Niedersachsen'
WHEN 'NW' THEN 'Nordrhein-Westfalen'
WHEN 'RP' THEN 'Rheinland-Pflaz'
WHEN 'SL' THEN 'Saarland'
WHEN 'SN' THEN 'Sachsen'
WHEN 'ST' THEN 'Sachsen-Anhalt'
WHEN 'SH' THEN 'Schleswig-Holstein'
WHEN 'TH' THEN 'Thüringen'
ELSE ' '
END
FROM EXAMPLE_1;
在调用 CASE 表达式之前,我是否必须将列“Bundesland”放入 SELECT 中?
解决方案
如果我理解正确,你想要这个
SELECT
NAME AS LAST_NAME,
FIRST_NAME AS FIRST_NAME,
BIRTH_DATE AS BIRTH_DATE,
(CASE UPPER(BUNDESLAND)
WHEN 'BW' THEN 'Baden-Wuerttemberg'
WHEN 'BY' THEN 'Bayern'
WHEN 'BE' THEN 'Berlin'
WHEN 'BB' THEN 'Brandenburg'
WHEN 'HB' THEN 'Bremen'
WHEN 'HH' THEN 'Hamburg'
WHEN 'HE' THEN 'Hessen'
WHEN 'MV' THEN 'Mecklenburg-Vorpommern'
WHEN 'NI' THEN 'Niedersachsen'
WHEN 'NW' THEN 'Nordrhein-Westfalen'
WHEN 'RP' THEN 'Rheinland-Pflaz'
WHEN 'SL' THEN 'Saarland'
WHEN 'SN' THEN 'Sachsen'
WHEN 'ST' THEN 'Sachsen-Anhalt'
WHEN 'SH' THEN 'Schleswig-Holstein'
WHEN 'TH' THEN 'Thüringen'
ELSE ' '
END) AS Bundesland_Long
FROM EXAMPLE_1;
从而为您的案例陈述提供别名。我对它的命名与你原来的BUNDESLAND
专栏不同,因为有些 RDBMS 不喜欢这个,而且我不知道你的 RDBMS
推荐阅读
- javascript - 新的 FormData 正在返回空对象
- r - 如何将数据框转换为命名列表并删除 NA
- sumo - 在 SUMO 网络中创建相反方向的车道
- python - 如何安装特定版本的 conda 包?
- git - 为什么在解决 rebase 或 cherry-pick 冲突后 git 不修改补丁?
- nsis - 如何读入字节数组文件内容,然后更新它们并写入另一个文件?
- python - 如何使用 VGG19 keras 等前 10 层预训练模型?
- forms - 以批量形式使用 Pagerfanta/非 ArrayAccess 列表
- php - 删除帖子而不加载页面 - symfony4
- python-3.x - 使用图像处理将每个形状的颜色更改为独特的颜色