【问题标题】:How to display the row value in a column into a single row如何将列中的行值显示为单行
【发布时间】:2014-09-18 05:12:33
【问题描述】:

我在一列中有几行如下:

Country
----------
 USA
 UK
 Singapore

现在,我想得到如下结果:

First_Country |  Second_Country |  Third_Country
--------------+-----------------+--------------
 USA          |   UK            |   Singapore
 NULL         |   USA           |   UK

怎么办?我试过PivotUnpivot 没有运气。

【问题讨论】:

  • 请以您希望的准确表格形式提供输出样本。
  • @KasimHusaini:谢谢,现在格式正确。请帮忙。我正在使用 2008 Management Studio。 2012年有没有简单的办法?
  • 您如何确定哪一行与其他行分组?需要有另一列来确定要旋转的行组。没有它的分组可能是可能的,但完全是任意的。

标签: sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012-express


【解决方案1】:

您可以使用以下查询来实现:

select  GROUP_CONCAT(<Column_Name> SEPARATOR ' ') from <Table_Name>;

在哪里, Column_Name - 您想要连接成单个结果的列 Table_Name - 具有上述列的表。

【讨论】:

  • Janakiraman,谢谢,但是,它说 GROUP_CONCAT 不是公认的功能。我正在使用 2008 Management Studio。请帮忙。这取决于版本吗?
  • 以上查询特定于 MySQL。对于 SQL Server,您可以使用如下内容:SELECT STUFF( (SELECT ',' + Column_Name FROM Table_Name FOR XML PATH ('')) , 1, 1, '')
  • Janakiraman,谢谢,这个查询看起来更好。但是,是否可以将它放在不同的列中,因为我在我的问题中给出了上面的输出?第二行的第一列应该有 NULL
  • 凭什么第二行有空值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 2014-04-09
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 2020-12-07
相关资源
最近更新 更多