sql - 根据 char 类型所说的内容将 char 类型转换/转换为 int
问题描述
我正在查询需要将种族分类为以下五种之一的人口统计数据:美洲印第安人、亚洲人、黑人、白人、太平洋 ISL。我需要创建一个列,如果他们不止一场比赛,它会输出“M”,如果不是,它将输出该比赛的适当代码。在原始表格中,每场比赛都被编码为“Y”或 NULL。
IIf((SD.[RACE_AMER_INDIAN]+SD.[RACE_ASIAN]+SD.[RACE_BLACK]+SD.[RACE_PACIFIC_ISL]+SD.[RACE_WHITE])>1,'M',
IIf(SD.[RACE_AMER_INDIAN]='Y','I',
IIf(SD.[RACE_ASIAN]='Y','A',
IIf(SD.[RACE_BLACK]='Y','B',
IIf(SD.[RACE_PACIFIC_ISL]='Y','P',
IIf(SD.[RACE_WHITE]='Y','W','')))))) AS Race
我确信有很多方法可以做到这一点,我试图在这些上使用 Convert/Cast 来制作数字,但遇到了困难。任何帮助,将不胜感激。
解决方案
将Y
s 的数量相加可能会很棘手。这是一种方法:
(case when len(concat(SD.[RACE_AMER_INDIAN], SD.[RACE_ASIAN], SD.[RACE_BLACK], SD.[RACE_PACIFIC_ISL], SD.[RACE_WHITE]) > 1
then 'M'
when SD.[RACE_AMER_INDIAN] = 'Y' then 'I'
when SD.[RACE_ASIAN] = 'Y' then 'A'
when SD.[RACE_BLACK] = 'Y' then 'B'
when SD.[RACE_PACIFIC_ISL] = 'Y' then 'P'
when SD.[RACE_WHITE] = 'Y' then 'W'
else ''
end) as Race
推荐阅读
- c# - 显示来自 linq 查询的数据的问题
- data-visualization - 如何在 Oracle 可视化云中更改语言?
- dart - Flutter 布局问题(ListView 和 GridView)
- python - pandas to_csv 将 str 列转换为 int(或 float)
- javascript - gmail如何在没有监听器的情况下捕获鼠标事件?
- android - 即时运行不适用于 android studio 3.3 更新
- ruby - 如何从 rom-sql 中的连接表中提取别名列?
- javascript - FormData 在不应该出现的时候附加产生错误
- android - 如何确定应用程序是 32 位还是 64 位?
- php - 基本的石头、纸、剪刀游戏需要协助