sql - 交叉应用 VS STUFF 功能

标签 sql sql-server cross-apply

我正在 SQL Server 中搜索 GROUP_CONCAT 等效函数,我发现这两个选项是 CROSS APPLYSTUFF 。因为我想使用连接来连接日程表中sday字段的日期。这是我的数据库架构,请引用下面的照片。那么解决这个问题更好的方法是什么?

doctor schema schedule schema

我尝试了像这样的STUFF函数,并且我得到了重复的记录:

enter image description here

最佳答案

连接查询中的值没有问题。您可以看到它正确地返回了结果。另请注意,进行连接的不是 STUFF(),而是 FOR XML PATH('')

由于您在 doctorschedule 之间进行了内部联接,因此您获得了重复的记录。其中一位医生有 4 份记录。具体来说,start_timeend_timesstatus 列是问题所在。您可能无法按它们进行分组,因为计划中每一天的值可能不同。

您可以:

  • 不返回查询中的这些列,
  • 或者也连接这些列。

关于sql - 交叉应用 VS STUFF 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368965/

相关文章:

sql - SQL - 扩展由交叉应用和枢轴组成的查询

sql-server - TSQL 可以使用命名行进行多列逆透视吗?

mysql - sql通过列号/索引/位置而不是列名选择列

mysql - 具有整数名称的列的 SQL SUM 函数

php - 此查询是否获取不必要的信息?我应该更改查询吗?

sql-server - 如何从sql server中的字符串插入日期时间

sql-server - SQL Server - 向所有表添加默认约束

sql - ORA-38104: UPDATE SET 的 LHS 包含 ON 子句中引用的列

json - SQL Server : How to query data all rows as Json object into next to other columns?

sql - 交叉应用性能不佳,转换为 unpivot(或其他)?