SQL查询与来自另一个表
问题描述:
选择并splited列值我有2个表SQL查询与来自另一个表
第一表
Id Type Value
1 2 1,2,3,5
2 1 1,3,6
3 1 2,3,1,6
第二表
Id Name
1 Leon
2 Anna
3 Biorn
4 Alex
5 Peter
6 Luis
值在第一表是IDS在第二表中。
我需要查询的类型从第一台
例如返回所有名称:
Type = 1
return: Leon,Anna,Biorn,Luis
type = 2
return: Leon,Anna,Biorn,Peter
我试图创建一个视图,将是这样的:
Type Name
1 Leon
1 Anna
1 Biorn
1 Luis
2 Leon
2 Anna
2 Biorn
2 Peter
因此,我可以轻松地按类型选择所有名称,但我无法弄清楚如何去做。请帮忙!
答
您似乎认识到这是一个糟糕的数据结构。您应该有一个联结表 - 将整数列表存储为分隔字符串不是SQLish数据结构。
有时,我们被其他人的糟糕的设计决定所困扰。以下是你可以做的一件事:
select t1.type, t2.name
from table1 t1 join
table2 t2
on ',' + t1.value + ',' like ',%' + cast(t2.id as varchar(255)) + '%,';