oracle - 我需要转换 oracle 表数据,将 1 列值固定为标识符,将所有其他列名和值作为单行
问题描述
我有一个包含多列的 oracle 表,我需要以固定 1 列值和其他列名称及其值显示为单行的方式转换数据。
对于 ex- 表目前是这样的:
|ColA| ColB| ColC |ColD |ColE|
1 abc def ghi jkl
2 mbc nef ohi pkl
3 abc grt qkt
4 alc dhj li ttl
5 rec dtf goi jdr
我需要数据的最终格式是:
1;colB;abc
1;ColC;def
1;colD;ghi
1;colE;jkl
2;colB;mbc
2;ColC;nef
2;colD;ohi
2;colE;pkl
解决方案
这应该会为您解决:
SELECT *
FROM (SELECT COLA || ';' || 'ColB;' || COLB AS DATA FROM SOME_TABLE UNION ALL
SELECT COLA || ';' || 'ColC;' || COLC FROM SOME_TABLE UNION ALL
SELECT COLA || ';' || 'ColD;' || COLD FROM SOME_TABLE UNION ALL
SELECT COLA || ';' || 'ColE;' || COLE FROM SOME_TABLE)
ORDER BY DATA
推荐阅读
- google-chrome - http://reload.extensions 未找到 IP 地址
- assembly - 将汇编转换为十六进制。如何一步一步做到这一点?
- bash - Bash IF 检查确切的数字是否在列表中
- python - 2D 随机游走,python
- python - 文件流 - ValueError:嵌入的空字节
- javascript - 为什么上传的文件不会通过 post 请求发送到数据库?
- linux - 如何列出目录中以字符开头但文件名后跟 8 个小写字符的文件?
- php - 如何解决 SQLSTATE[42S22]:Laravel 5.8 中找不到列
- c# - 代码 GetAsyncKeyState(VK_SHIFT) & 0x8000 中的这些数字是什么?它们是必不可少的吗?
- python - 忽略语句体?