在数据浏览器帖子中拆分标签

Posted

技术标签:

【中文标题】在数据浏览器帖子中拆分标签【英文标题】:Splitting up tags in data explorer posts 【发布时间】:2014-09-03 07:47:11 【问题描述】:

我想做一个查询,它将列出按最未回答的问题排序的标签(具有该标签),但是由于标签存储为空格分隔 varchar 并且据我所知 SQL Server(@ 987654321@) 没有拆分字符串的功能,我有点不确定如何继续。我是这样写的:

SELECT DISTINCT Tags from Posts WHERE AnswerCount = 0;

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

我环顾四周,但every result 我发现创建了一个函数作为拆分标签的解决方案,但是您不能在 dataexchange 上创建函数,因此这是不可能的。还有其他方法可以将所有标签放在一列中吗?

【问题讨论】:

如果你有一个通过正则表达式拆分它们的标签表会很容易。***.com/questions/8928378/using-regex-in-sql-server 你有单独的标签表吗? @GordonLinoff 是的,但据我所知,它与帖子表之间没有关系 相关:meta.***.com/questions/265460/…,posttags表中posts和tags的关系 【参考方案1】:

您可以使用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 有一个很好的内置机制来存储列表。它不是一个字符串。它被称为表。如果您有选择,您应该使用它。

【讨论】:

对名称稍作调整并删除空格,效果很好,非常感谢!

以上是关于在数据浏览器帖子中拆分标签的主要内容,如果未能解决你的问题,请参考以下文章

如何通过某些标签获取帖子和评论的用户数?

浏览器可以将有效负载数据拆分为多个 websocket 帧吗?

如何在python中删除html标签中的文本? [复制]

那些我不知道的Meta标签

如何判断 Web 应用程序是不是使用代码拆分

RoR,Ruby 如何从数据库中拆分数据并使用计数