将列名连接到另一列中的值
Posted
技术标签:
【中文标题】将列名连接到另一列中的值【英文标题】:Join column name to the value in another column 【发布时间】:2018-03-07 18:23:03 【问题描述】:我有以下表格:
分类表
> ID Code CodeValue Value
> 1 sex 1 Male
> 1 sex 2 Female
> 2 age 1 Under 20
> 2 age 2 Between 20 and 40
> 2 age 3 Over 40
数据表
> sex age
> 1 1
> 1 2
> 2 2
> 1 3
我想根据代码返回字段的值,以便最终表格如下所示:
> sex age
> Male Under 20
> Male Between 20 and 40
> Female Between 20 and 40
> Male Over 40
有什么方法可以将Category表中'Code'列的值(性别年龄)与Data表中的列名连接起来,然后返回对应的'Value'(男性、女性、20岁以下等) ...)
谢谢!
山姆
【问题讨论】:
【参考方案1】:您可以加入表格两次,每个类别一次。
SELECT cts.value sex, cta.value age
FROM data_table dt
INNER JOIN category_table cts
ON dt.sex = cts.code_value AND cts.code = 'sex'
INNER JOIN category_table cta
ON dt.age = cta.code_value AND cta.code = 'age'
【讨论】:
您的第二次加入应该是 dt.age,而不是 dt.sex 感谢您的回答。是否可以在不明确说明“性别”和“年龄”的情况下加入?表通常有 15 多个不同名称的列,我宁愿不对所有内容进行硬编码。有没有办法使用系统表来使用列名? 表格的设计需要硬编码。由于第一个表中的代码列具有文本值,因此我没有看到其他方法。以上是关于将列名连接到另一列中的值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 python 的另一列中的字符串值中从数据框中的一列中搜索字符串?