我有两个表:
category
中的列:
id name
1 business
2 sports
...
article
中的列:
id title categories
1 abc 1|2|3
2 xyz 1|2
我知道应该有一个单独的文章类别表,但是我得到了这个。
是否可以编写返回以下内容的查询:
id title category_names
1 xyz business,sports
我想到了在article
-> categories
列中拆分字符串,然后在查询中使用 从name
表中提取category
,但是无法弄清楚。
答案 0 :(得分:1)
您应该修复数据模型。但是,您可以在SQL Server中执行此操作:
select a.*, s.names
from article a cross apply
(select string_agg(c.name, ',') as names
from string_split(a.categories, '|') ss join
category c
on try_convert(int, ss.value) = c.id
) s;
Here是db <>小提琴。
大概,您已经知道此数据模型的缺点: