Sql 在具有特征线的单个值中插入多列值

Sql 在具有特征线的单个值中插入多列值,sql,sql-server,Sql,Sql Server,如何使用换行符在单个值中插入一列的多个值。例如,我在三个不同的行中为名为filename的列设置了三行,分别为F1、F2、F3。我想将其保存在列的单个值中,作为F1/nF2/n/F3 示例 jobname filename daily F1.txt daily F2.txt daily F3.txt 所需输出 jobname fi

如何使用换行符在单个值中插入一列的多个值。例如,我在三个不同的行中为名为filename的列设置了三行,分别为F1、F2、F3。我想将其保存在列的单个值中,作为
F1/nF2/n/F3

示例

jobname       filename          
daily          F1.txt              
daily          F2.txt                  
daily          F3.txt  
所需输出

jobname       filename          

daily          F1.txt 
               F2.txt
               F2.txt             

试试这个。此查询将根据所需的输出返回数据。因此,您可以使用此查询进行插入

select distinct t.[jobname],
  STUFF((SELECT distinct ' ' + t1.filename
         from tablename t1
         where t.[jobname] = t1.[jobname]
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,2,'') filename
from tablename t;

请参阅。

“我想将其保存在列的单个值中,作为F1/nF2/n/F3”-不,您不需要!阅读有关正常化的内容。@MitchWheat稍微通俗一点。也许他试图通过非规范化来提高性能。我不认为是这样,但也有可能是这样。@Andre:是的,真的会是这样……也许我有一只宠物独角兽:)对不起,我不太清楚标准化,但我还是想问,我能不能不从一个表中插入值,有第一个示例这样的数据,到另一个表以获得所需输出条件下的数据。因为我没有更新或更改同一个表,而是将值从一个表插入到另一个表中。请评论或回复。@Vivek我认为DH__;的解决方案是正确的。它将根据您给定的要求工作。介意对您的代码做一些解释吗?@Rahul是的。我修改了ans。