首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL行到列的转置

SQL行到列的转置
EN

Stack Overflow用户
提问于 2013-03-01 22:21:57
回答 1查看 577关注 0票数 1

我在转置列到行时遇到了一个问题,旋转似乎没有以我想要显示的方式给我结果。

以下是具有n行数的样本数据模式:

代码语言:javascript
复制
Coulmn1      Column2
Customer     C1
Account      A1
Transaction  T1
Transaction  T2
Transaction  T3
Account      A2
Transaction  T11
Transaction  T12
Transaction  T13
Customer     C2
Account      A11
Transaction  T111
Transaction  T112
Transaction  T113
Account      A12
Transaction  T1111
Transaction  T1112
Transaction  T1113

代码语言:javascript
复制
Customer  Account  Transaction
C1        A1       T1
C1        A1       T2
C1        A1       T3
C1        A2       T11
C1        A2       T12
C1        A2       T13
C2        A11      T111
C2        A11      T112
C2        A11      T113
C2        A12      T1111
C2        A12      T1112
C2        A12      T1113
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-01 22:31:59

这是你想要做的MySQL版本。它使用相关子查询来获取客户和帐户信息:

代码语言:javascript
复制
select t.Column1,
       (select column2 from t t2 where t2.column1 = 'Customer' and t2.id <= t.id order by t2.id desc limit 1
       ) as customer,
       (select column2 from t t2 where t2.column1 = 'Account' and t2.id <= t.id order by t2.id desc limit 1
       ) as transaction,
from t
where t.column1= 'Transaction'

这里假设您有一个id列来对行进行排序。如果不是,那么您需要找出一种方法来获取这样的列( id或时间戳),因为SQL表本质上是无序的。

在其他数据库中,逻辑也是类似的。但是,语法可能是select top 1where rownum = 1fetch only 1 row,而不是limit 1

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15159956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档