【问题标题】:SQL How to display row on columnSQL如何在列上显示行
【发布时间】:2014-10-02 02:31:42
【问题描述】:

我有这张桌子

CREATE TABLE [dbo].[MONITOR.Dati_Attivita]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [IDEsecuzione] [int] NOT NULL,
    [IDIndice] [int] NOT NULL,
    [Valore] [nvarchar](100) NOT NULL,
    [IDRipetizione] [int] NOT NULL,

    CONSTRAINT [PK_Monitor_Dati_Attivita] 
      PRIMARY KEY CLUSTERED ([ID] ASC)
) ON [PRIMARY]

所以我想SELECT结果集,

我试试这个:

SELECT IDEsecuzione, Valore, IDRipetizioe

结果是

1 -  100  - 1
1 - 'abc' - 1
1 - 'VVV' - 1
2 - 'aaa' - 1
2 - 'bbb' - 1
2 - 'ccc' - 1

但我想这样显示结果集:

1 - 100 - abc - VVV - 1
2 - aaa- bbb - ccc - 1

你能帮帮我吗?

问候

【问题讨论】:

标签: sql sql-server select row


【解决方案1】:

要将列连接到行上,请使用FOR XML PATH 方法。

    SELECT DISTINCT
        IDEsecuzione,
        Valore = SUBSTRING((SELECT ' - ' + t1.Valore 
                            FROM MONITOR.Dati_Attivita t1 
                            WHERE t1.IDEsecuzione = t2.IDEsecuzione 
                            FOR XML PATH('')), 4, 9999),
        IDRipetizione
    FROM MONITOR.Dati_Attivita t2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    • 1970-01-01
    • 2014-02-16
    • 2021-11-24
    • 2020-11-21
    相关资源
    最近更新 更多