【问题标题】:Concatenate column values based on type result根据类型结果连接列值
【发布时间】:2018-11-28 11:40:16
【问题描述】:
声明@name nvarchar(max),@Id int SELECT @Id=[EmpType],@name =ISNULL(@name + ',','')+[UserName] FROM [dbo].[TestTable] 按 [EmpType] 分组 选择 @Id,@name

此代码出现错误,我如何获得结果员工类型明智的连接用户名

Expecting Result set

【问题讨论】:

  • 你忘了问问题
  • @RajuBandaram 。 . .请提供样本数据和期望的结果。鉴于GROUP BY 将返回多行,您的代码根本没有意义,但您正在为结果集分配变量(这意味着最多将返回一行)。
  • [dbo].TestTable] 不正确,[dbo].[TestTable] 正确

标签: sql sql-server tsql


【解决方案1】:

您可以在下面使用STUFF() 函数尝试

SELECT [EmpType],  abc = STUFF(
             (SELECT ',' + [UserName]
              FROM [dbo].TestTable] t1
              WHERE t1.[EmpType] = t2.[EmpType]
              FOR XML PATH (''))
             , 1, 1, '') from [dbo].TestTable] t2
group by [EmpType];

【讨论】:

  • [dbo].TestTable] 不正确
  • 亲爱的@fa06,它不工作。出现错误,例如“消息 8120,级别 16,状态 1,第 17 行列 'dbo.EmployeeLoginMaster.UserName' 在选择列表中无效,因为它既不包含在聚合函数或 GROUP BY 子句中。”
  • @RajuBandaram,我已经更新了我的答案 - 你现在可以查看
猜你喜欢
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 2018-09-07
  • 2016-05-02
  • 2017-06-06
  • 2019-12-18
  • 1970-01-01
  • 2021-07-22
相关资源
最近更新 更多