【问题标题】: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 上创建函数,因此这是不可能的。还有其他方法可以将所有标签放在一列中吗?

【问题讨论】:

标签: sql sql-server dataexplorer


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

【讨论】:

  • 对名称稍作调整并删除空格,效果很好,非常感谢!
猜你喜欢
  • 2019-05-26
  • 2011-09-09
  • 1970-01-01
  • 2021-08-24
  • 1970-01-01
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
相关资源
最近更新 更多