拆分数据资源管理器帖子中的标签

时间:2014-07-13 01:38:06

标签: sql sql-server dataexplorer

我想创建一个查询,列出最无法回答的问题(有标签)排序的标签,但是当标签存储为空格分隔varchar时,我理解它是SQL Server (which StackExchange uses)没有分割字符串的功能,我对如何继续有点不确定。我写了这个:

SELECT DISTINCT Tags from Posts WHERE AnswerCount = 0;

正确返回标签,但它们都按帖子分组:

Results

我已经环顾了很多但every result我发现创建了一个函数作为分割标记的解决方案,但是你不能在dataexchange上创建函数,这是不可能的。还有另一种方法可以将所有标签放入一列吗?

1 个答案:

答案 0 :(得分:2)

您可以使用like

进行效率低下的加入
select t.TagName, count(p.Tags)
from Tags t left join
     Posts p
     on p.Tags like '%' + t.TagName + '%'
where p.AnswerCount = 0
group by t.TagName;

您应该使用单独的联结表PostTags,每个帖子一行,每个帖子上的每个标记。这种类型的查询会更加简单。 SQL有一个很好的内置机制来存储列表。它不是一个字符串。它被称为表。如果你有选择的话,你应该使用它。