如何用分号分隔nvarchar列

时间:2018-09-10 14:11:45

标签: sql-server

我在类型为nvarchar的SQL Server表中具有此列,该表的另一个表的ID号用分号分隔(不良设计,无法更改)。

enter image description here

enter image description here

当GroupIds列中只有一个值时,我尝试运行的查询有效,但是对于多个组,它会失败并显示错误

  

将nvarchar值'2; 5'转换为数据类型int时转换失败。

代码:

SELECT 
    i.Name,
    i.Channel,
    g.Name AS 'Group Name',
    io.Name AS 'Logger Name',
    io.ModuleType,
    io.IpAddress
FROM 
    Input i
JOIN 
    [dbo].[Group] g ON i.GroupIds = g.Id
JOIN 
    [dbo].[IoModule] io ON i.IoModuleId = io.Id
ORDER BY
    i.Channel, io.Name;

我已经用尽了我的Google技能,但有些工作却无法完成,但是却没有任何结果。理想情况下,我希望看到一个结果,其中“组名”用逗号分隔。

注意:我需要将其作为生产数据库中的一次性报告。我无法创建临时表,函数或任何类似性质的东西。这个问题被标记为重复的答案没有任何帮助。在过去的十年中,有42个答案。这些都没有关于从联接中选择该数据的任何信息。可能是我普遍缺乏联接知识,但是我正在寻找一个答案,即基本上将组ID按组名放在一列中,并用逗号分隔。

0 个答案:

没有答案