tsql order by与xml路径不同

tsql order by与xml路径不同,tsql,stored-procedures,pivot,sql-order-by,distinct,Tsql,Stored Procedures,Pivot,Sql Order By,Distinct,我有一个查询,稍后将用于执行动态透视。我想在执行distinct之前对这个查询进行排序。我怎样才能做到这一点?每当我点这个菜时,它就完全打破了界限 DECLARE @cols NVARCHAR(max); SET @cols = STUFF ( (SELECT distinct ',' + c.[PivotColumnTitle] FROM [myTable] c WHERE c.Id = @idInput AND c.IsPivo

我有一个查询,稍后将用于执行动态透视。我想在执行distinct之前对这个查询进行排序。我怎样才能做到这一点?每当我点这个菜时,它就完全打破了界限

    DECLARE @cols NVARCHAR(max);
SET @cols = STUFF
(
    (SELECT distinct ',' + c.[PivotColumnTitle]
        FROM [myTable] c
        WHERE c.Id = @idInput
        AND c.IsPivotVisible = 1
              --order by c.PivotColumnOrder
        FOR XML PATH(''), TYPE
    ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,''
)
试试这个:

DECLARE @cols NVARCHAR(max);

SET @cols = STUFF
(
    (
        SELECT ',' + c.[PivotColumnTitle]
        FROM [myTable] c
        WHERE c.Id = @idInput
            AND c.IsPivotVisible = 1
        GROUP BY c.[PivotColumnTitle]
        order by MAX(c.PivotColumnOrder)
        FOR XML PATH(''), TYPE
    ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,''
)