我有2张桌子
第一张表
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
第一个表中的值是第二个表中的ID。
我需要查询从第一个表中按类型返回所有名称
例如:
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
所以我可以轻松地按类型选择所有名称,但我无法弄清楚如何做到这一点。请帮忙!
答案 0 :(得分:1)
您似乎意识到这是一个糟糕的数据结构。您应该有一个联结表 - 将整数列表存储为分隔字符串不是SQLish数据结构。
有时,我们会遇到其他人糟糕的设计决定。这是你可以做的一件事:
select t1.type, t2.name
from table1 t1 join
table2 t2
on ',' + t1.value + ',' like ',%' + cast(t2.id as varchar(255)) + '%,';