• 如何将多行中的文本连接成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
  • 相关阅读:
    单臂路由
    C#同步、异步编程
    Grid控件
    使用WrapPanel和DockPanel
    使用StackPanel进行简单地布局
    WPF布局
    SQL update 多表连接方法
    创建一个自定义的Application类
    Application全局应用程序类
    XAMl使用其他命名空间中的类型及加载和编译
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13286358.html
Copyright © 2020-2023  润新知