如何在 sql server 2008 中编写对行到列的查询?

Posted

技术标签:

【中文标题】如何在 sql server 2008 中编写对行到列的查询?【英文标题】:how to write query for row to column in sql server 2008? 【发布时间】:2010-11-25 19:09:51 【问题描述】:

我有表客户

 customerno   sname   contactid  address
  1           aaa       101       north
  1            bbb      102        south
  1            ccc       103       west
  2           ddd        104       south
  2           ccc        105       north
  2            eee        106       null

我想将特定客户详细信息转换为单行。 我想要这样的结果

Customerno    sname1    sname2   sname3  address1  address2     address3
  1            aaa       bbb      ccc     north     south         west
  2            ddd       ccc      eee     south      north         null

帮帮我.......

【问题讨论】:

【参考方案1】:

这在本质上与下面的问题非常相似。请查看答案以获得指导。由于您要“旋转”超过 1 列,我认为这个问题只能通过一些自连接来解决。

Convert rows to columns

不要偏袒你,这是我的答案:) ...

Convert rows to columns

【讨论】:

我应该补充一点,上述解决方案仅适用于您想要为表中的每个 customerno 旋转的条目的已知界限或限制的情况,因为这将由您进行的自连接数决定

以上是关于如何在 sql server 2008 中编写对行到列的查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 2008 R2 中的 select 语句中编写条件

如何在 SQL Server Reporting Services 2008 中复制报表

SQL SERVER 2008 R2 数据库附加到 SQL server 2005,怎么整

如何在 SQL Server 2008 的 where 子句中仅比较日期并忽略时间

如何在 sql server 2008 中生成随机布尔值?

使用 SQL Server Rank 函数对行进行排名而不跳过排名号