【问题标题】:SQL Server, how can I transpose data of a column [duplicate]SQL Server,如何转置列的数据[重复]
【发布时间】:2012-05-30 18:43:47
【问题描述】:

可能重复:
Concatenate many rows into a single text string?

我有一个问题

SELECT city FROM cityTable

返回

delhi
faridabad
haryana
mathura
kerla

我只想以转置方式得到结果

delhi | faridabad | haryana | mathura | kera

这怎么可能?

【问题讨论】:

标签: sql sql-server tsql


【解决方案1】:
SELECT STUFF (
 (SELECT N', ' + city FROM CityTable FOR XML PATH(''),TYPE)
  .value('text()[1]','nvarchar(max)'),1,2,N'')

Concatenate many rows into a single text string?

【讨论】:

  • 谢谢先生,但我只想转置列结果。我的意思是,结果应该以单行和单独的列返回。有没有可能???
  • 这里展示了如何写一个逗号分隔的列表,但是如果想要的结果是一个有很多列的表呢?
【解决方案2】:

您可以使用PIVOTUNPIVOT 作为此处发布的示例

TSQL – Transpose Data using Using PIVOT and UNPIVOT

注意:您可以在 SQL 的 BOL(在线书籍)上找到语法

【讨论】:

    【解决方案3】:
    declare @city nvarchar(max)
    SELECT @city = coalesce(@city+' | ', '')+city FROM cityTable 
    

    编辑:

    为了显示结果

    SELECT @city
    

    【讨论】:

    • 它没有返回结果......
    • @RakeshHolkar - 你必须在我的编辑操作后选择变量城市
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    相关资源
    最近更新 更多