sql - 查询以水平显示输出

标签 sql oracle pivot

我需要以水平方式显示查询输出。我有一些示例数据

create table TestTable (id number, name varchar2(10))

insert into TestTable values (1, 'John')
insert into TestTable values (2, 'Mckensy')
insert into TestTable values (3, 'Valneech')
insert into TestTable values (4, 'Zeebra')

commit

select * from TestTable

这将在垂直 View 中获得输出。
ID Name
==========
1  John
2  Mckensy
3  Valneech
4  Zeebra

但是,我需要水平显示它。
ID   1    2       3        4
Name John Mckensy Valneech Zeebra

怎么能做到这一点?

最佳答案

要旋转,您应该使用 pivot clause选择语句的:

select *
  from testtable
 pivot ( max(name)
         for id in (1,2,3,4)
       )

这在 SQL 中并不是特别好做,所以你应该仔细考虑这是否是你想要做的。我通常使用 Oracle Base对于旋转示例,但有很多示例。

这里有一点SQL Fiddle展示。

关于sql - 查询以水平显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12328849/

相关文章:

MySQL:如何编写对数字总和求平均值的查询

使用 Count 的 SQL,在同一单元格中多次出现相同的 "Like"

oracle - 自定义登录后重定向功能 Post_Login

r - 如何使用正则表达式 pivot_longer 两组列

mysql - GROUP BY a, b VS GROUP BY b, a

mysql - MySQL 中的子查询非常慢

第一个值为 0 时的 SQL Server 平均值

Oracle sql 计算单列中不同值的实例

sql - 使用动态枢轴功能从水平到垂直显示

sql - 在单行中获取不同的列值