SQL连接列的1个表到另一个表的行

时间:2018-01-24 09:08:05

标签: sql sql-server join

我在SQL服务器上做了一些合乎逻辑的事情,如果我的问题无效或可理解,请原谅我,因为我不知道应该如何询问这个问题。

我有2个表要转换成第3个表。

第一张表是"数据"具有列的表,但它们的值在代码中,其TEXT可以在"选项"中找到。表

State | Language | Gender
 2    |    3     |   1

第二个表是"选项"表是用于转换"数据"的代码的主表。表格进入文本。

问题栏是"数据"的列。表

选项列是与代码对应的文本。

代码列是&​​#34;数据列"'。

的值
Question   |    Option      | Code
 State     |    Orissa      |   2
Language   |    English     |   3

假设我想要代码的State of State列:2 in" Data"那么我会调查"选项"表并获取Option列值' Orissa'与国家和代码2相对应。

结果表应仅包含从代码转换的文本。

 State     | Language       | Gender
 Orissa    |    English     |   1

要注意的一点是,性别列没有转换文本,因为此列是“不是”。包含在"选项表"。

结果将动态创建为"数据"和"选项"表是动态创建的。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

尝试将第一张桌子加入第二张桌子两次:<​​/ p>

SELECT
    COALESCE(t2.Option, 'NA') AS State,
    COALESCE(t3.Option, 'NA') AS Language,
    t1.Gender
FROM table1 t1
LEFT JOIN table2 t2
    ON t1.State = t2.Code AND t2.Question = 'State'
LEFT JOIN table2 t3
    ON t1.Language = t3.Code AND t3.Question = 'Language';