将列名称加入另一列中的值

时间:2018-03-07 18:23:04

标签: sql join

我有以下表格:

类别表

> 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

有没有办法加入' Code'的值(性别年龄)?在类别表中的列与数据表中的列名称,然后返回相应的'值' (男,女,20岁以下等......)

谢谢!

萨姆

1 个答案:

答案 0 :(得分:2)

您可以两次加入表格,每个类别一次。

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'