【问题标题】:SQL Server joining results conditionSQL Server 加入结果条件
【发布时间】:2016-07-22 12:31:46
【问题描述】:

我有桌子:

NAME    FACTOR
say_type1    A
(...)
say_type2    B
(...)
say_type3    A
(...)
say_type3    B

我想得到一个答案的结果(SELECT name, factor FROM... WHERE some_condition):

say_type1    A
say_type2    B
say_type3    A,B

我正在尝试 CASE,但它总是只对一条记录起作用。

【问题讨论】:

标签: sql-server join case


【解决方案1】:

我猜您想将 FACTOR 列转换为行。您可以使用XML PATH

--F.e. we have this in YourTable
--('say_type1', 'A'),
--('say_type2', 'B'),
--('say_type3', 'A'),
--('say_type3', 'B')

SELECT DISTINCT t1.NAME,
        STUFF((SELECT ',' + FACTOR
        FROM YourTable
        WHERE NAME = t1.NAME
        FOR XML PATH('')),1,1,'') as FACTOR
FROM YourTable t1

输出:

NAME        FACTOR
say_type1   A
say_type2   B
say_type3   A,B

【讨论】:

    猜你喜欢
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2018-06-13
    相关资源
    最近更新 更多