我在SQL服务器上做了一些合乎逻辑的事情,如果我的问题无效或可理解,请原谅我,因为我不知道应该如何询问这个问题。
我有2个表要转换成第3个表。
第一张表是"数据"具有列的表,但它们的值在代码中,其TEXT可以在"选项"中找到。表
State | Language | Gender
2 | 3 | 1
第二个表是"选项"表是用于转换"数据"的代码的主表。表格进入文本。
问题栏是"数据"的列。表
选项列是与代码对应的文本。
代码列是"数据列"'。
的值Question | Option | Code
State | Orissa | 2
Language | English | 3
假设我想要代码的State of State列:2 in" Data"那么我会调查"选项"表并获取Option列值' Orissa'与国家和代码2相对应。
结果表应仅包含从代码转换的文本。
State | Language | Gender
Orissa | English | 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';