zoukankan      html  css  js  c++  java
  • 如何将多行中的文本连接成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
  • 相关阅读:
    论文尾注后无法插入分节符
    实现java对象排序的三种方式
    java数组的定义方式
    Canvas
    正则xss
    mongoDB学习记录
    查找,学习,记录
    地址
    node实战学习纪录
    nodejs学习记录
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13286358.html
Copyright © 2011-2022 走看看