sql - 在没有任何聚合函数的情况下将列数据转换为行
问题描述
我有一张emp (empno, empname)
这样的桌子:
empno empname
----------------
1 xxx
2 yyy
3 zzz
.. ....
等等。我见过一些查询,但他们使用的是 PIVOT/UNPIVOT,但如果有聚合函数。我不想使用聚合。
我想将列转换为行。
empno 1 2 3
-----------------------
empnam xxx yyy zzz
如何使用 SQL 在 Oracle 中执行此操作?
解决方案
您的选项几乎可以PIVOT
显式使用,或者使用枢轴查询,大致如下:
SELECT
'empnam' AS empno,
MAX(CASE WHEN empno = 1 THEN empname END) AS "1",
MAX(CASE WHEN empno = 2 THEN empname END) AS "2",
MAX(CASE WHEN empno = 3 THEN empname END) AS "3"
FROM yourTable;
推荐阅读
- matlab - 如何将 eps 插入乳胶中?
- powershell - 用于查找重复的 Windows 进程并杀死它们的 Powershell 脚本
- css - 是受元素本身字体大小影响的字体大小相对长度
- php - Wordpress 如何为自定义帖子类型执行嵌套/多级查询
- c# - C# OLEDB 查询未正确填充元素
- c# - log4net - 作为组件服务调用时出错
- django - 在窗口方法中排序的正确方法(具有两个或多个字段)
- mysql - 如何使用 vb.net 将 MYSQL 表中的数据导入 SQL Server Compact 表(.sdf)
- mysql - 如何更新mysql表中的数据
- ruby-on-rails - 具有显示 Object 的 has_and_belongs_to_many 关联的模型不支持 #inspect