STUFF 仅唯一值以及对另一列进行排序

尼莱

我想用逗号分隔组合值。对于使用stuff.
但是我的数据有重复的值,我只需要其中的唯一项。

这是我正在使用的查询。

SELECT STUFF
(
    RTRIM
    (
        (   SELECT  N', ' + CAST(column1Name AS varchar(MAX))
            FROM dbo.tableName
            ORDER BY column2Name
            FOR XML PATH (N'') 
        ) 
    )
, 1, 2, N'')

SELECT DISTINCT在 STFF 中尝试过,但这需要一个用于在 SELECT 子句中排序的列,我使用的是 STUFF 所以我不能在 SELECT 子句中使用该列。

SELECT STUFF
(
    RTRIM
    (
        (   SELECT DISTINCT N', ' + CAST(column1Name AS varchar(MAX))
            FROM dbo.tableName
            ORDER BY column2Name
            FOR XML PATH (N'') 
        ) 
    )
, 1, 2, N'')

我也尝试使用sub-query做排序和使用不同的外部,但这也给出了编译错误。

SELECT STUFF
(
    RTRIM
    (
        (   SELECT DISTINCT N', ' + CAST(column1Name AS varchar(MAX))
            FROM
            (
                SELECT column1Name
                FROM dbo.tableName
                ORDER BY column2Name
            ) tableAlias
            FOR XML PATH (N'') 
        ) 
    )
, 1, 2, N'')

我也试过GROUP BY,这也迫使我在 SELECT 子句中添加 column2Name。

SELECT STUFF
(
    RTRIM
    (
        (   SELECT N', ' + CAST(column1Name AS varchar(MAX))
            FROM dbo.tableName
            GROUP BY column1Name
            ORDER BY column2Name
            FOR XML PATH (N'') 
        ) 
    )
, 1, 2, N'')

有没有办法填充唯一值以及基于不同列的排序?

松鼠

您仍然可以使用该GROUP BY方法。唯一的事情是当你GROUP BY column1Name,可能有多个值column2Name,所以你需要在它上面使用聚合,例如MIN(column2Name)

SELECT STUFF
(
    RTRIM
    (
        (   SELECT N', ' + CAST(column1Name AS varchar(MAX))
            FROM dbo.tableName
            GROUP BY column1Name
            ORDER BY MIN(column2Name)
            FOR XML PATH (N'') 
        ) 
    )
, 1, 2, N'')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL Server-基于另一列求和,并与STUFF / XML PATH结合?

使用交叉连接创建并使用 STUFF 编辑的列中的唯一值

在使用STUFF FOR XML进行连接之前对数据进行排序

如何使用STUFF和FOR XML PATH分隔与行对应的唯一值

STUFF不对SQL Pivot中的日期进行排序

根据熊猫中的另一列对唯一值进行排序

如何基于R中的另一列对唯一值进行排序

使用 STUFF 在 SQL 中返回多个 XML 值

SQL Server SELECT STUFF返回不正确的值

SQL Server - 使用 STUFF 从查询中删除空值

如何在 Stuff 函数中包含 NULL 值?

使用Stuff汇总多行数据并连接列

SQL Pivot动态列STUFF函数空单元格

有没有一种方法可以对STUFF / FOR XML PATH中的数值进行排序?

对一列进行排序,以使一列跟随另一列的值

SQL按值对另一列进行排序

STUFF FOR XML PATH - 将多行合并到一个列单元格中

如何获得带有联接的SQL查询并使用STUFF和FOR XML PATH进行正确排序

MySQL:仅当另一列中的值唯一时才设置值

熊猫按另一列的平均值对一列的值进行排序

熊猫按另一列中的值对一列进行排序

如何对一列进行排序取决于另一列的值:jquery tablesorter

Pyspark,按一列中的唯一值对另一列中的特定值进行分组

如何根据另一列中的唯一值对一列中的值进行分组?

如何基于另一列的唯一值获取一列的唯一值

如何从一列中的不同值采样而仅返回另一列中唯一的记录?

从另一列创建一列列表,并在 Pandas 数据框中仅显示唯一值

根据一列的相同值进行分组和排序,然后对这些组中的另一列进行排序

仅使用标准库,按另一列的分组值中的一列的累积总数对文本文件进行排序?