我在ctc表中创建了2列数据类型字符串,int(公司,acc_id),该表具有多个逗号分隔的值。我需要用255个字符和逗号分隔的字符来分隔这些字符串,以确保公司名称和帐户ID不会被破坏并且在阅读时有意义。为了实现此查询,如果没有足够的空间来包含完整的公司名称和acc_id,则需要以少于255个字符停止。解决方案也只需要在SQL查询中,因为我必须在第三方工具中包含查询。我无法编写函数或存储过程。它应将255个字段的长度分成8个多列中的一列。其余的空列中可以包含null或空值。
有人可以建议我如何实现这一目标。
下面是通过基于多个行的电子邮件地址将多个行连接起来以在各列中创建逗号分隔值的代码。可以重复行,这不是问题。
WITH contact_CTE
AS
(
SELECT
acc_id,
,company
,email
FROM table1 a
inner join table2 on b.id = a.type_id
),
contact_CTE_Ext
AS (SELECT acc_id
,company
email,
STUFF(( SELECT ',' + company
FROM contact_CTE as t1
where t1.email = t2.email
FOR XML Path ('')), 1 , 1 ,'') new_companies ,
STUFF(( SELECT ',' + adv_account
FROM contact_CTE as t1
where email = Email
FOR XML Path ('')), 1 , 1 ,'') new_accIds
From contact_CTE as t2
)