在SQL查询中以特定长度和特定字符中断字符串

时间:2019-06-06 20:11:41

标签: sql sql-server-2014

我在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  
)

![Actual Result] 1 ![enter image description here] 2

0 个答案:

没有答案