如何将多行中的文本连接成SQL服务器中的单个文本字符串String?

Posted MrAit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将多行中的文本连接成SQL服务器中的单个文本字符串String?相关的知识,希望对你有一定的参考价值。

[

鉴于indexing随着数据集规模的增加,这一点非常重要,有人可以解释一下如何在一个database-agnostic级别上进行索引工作?

如何将多行中的文本连接成SQL服务器中的单个文本字符串String?

当我试图用一对多关系连接两个表时,我遇到了类似的问题。在SQL 2005中,我发现该XML PATH方法可以很容易地处理行的连接。

如果有一个表叫?STUDENTS

SubjectID       StudentName
----------      -------------
1               Mary
1               John
1               Sam
2               Alaina
2               Edward

我预期的结果是:

SubjectID       StudentName
----------      -------------
1               Mary, John, Sam
2               Alaina, Edward

我使用了以下内容T-SQL:

Select Main.SubjectID,
       Left(Main.Students,Len(Main.Students)-1) As "Students"
From
    (
        Select distinct ST2.SubjectID, 
            (
                Select ST1.StudentName + ‘,‘ AS [text()]
                From dbo.Students ST1
                Where ST1.SubjectID = ST2.SubjectID
                ORDER BY ST1.SubjectID
                For XML PATH (‘‘)
            ) [Students]
        From dbo.Students ST2
    ) [Main]

如果您可以在开始时对逗号进行连接并使用substring跳过第一个逗号,那么您可以以更紧凑的方式执行相同的操作,因此不需要执行子查询:

Select distinct ST2.SubjectID, 
    substring(
        (
            Select ‘,‘+ST1.StudentName  AS [text()]
            From dbo.Students ST1
            Where ST1.SubjectID = ST2.SubjectID
            ORDER BY ST1.SubjectID
            For XML PATH (‘‘)
        ), 2, 1000) [Students]
From dbo.Students ST2

?

]
转载请保留页面地址:https://www.breakyizhan.com/sql/3973.html

以上是关于如何将多行中的文本连接成SQL服务器中的单个文本字符串String?的主要内容,如果未能解决你的问题,请参考以下文章

SQL将多行左连接成一行

sql 将许多行连接成单个文本string.sql

使用 case 语句将多行连接成一列

如何查找文本区域中的文本是不是换行为多行?

如何将位于 UI View 中的长文本标签制作成 Swift 中的多行?

BigQuery 中的标准 SQL - 从多行获取连接文本