sql – 使用Oracle转置选择结果
发布时间:2020-05-24 20:57:22 所属栏目:MsSql 来源:互联网
导读:我的问题是,有一些背景: 我必须根据表元数据(列格式)生成一些sql查询,结果如下: TABLENAME1|COL1TABLENAME1|COL2TABLENAME2|COL1TABLENAME2|COL2TABLENAME2|COL3TABLENAME3|COL1TABLENAME4|COL1TABLENAME4|COL2... /*some other 1800 rows */
|
我的问题是,有一些背景: 我必须根据表元数据(列格式)生成一些sql查询,结果如下: TABLENAME1|COL1 TABLENAME1|COL2 TABLENAME2|COL1 TABLENAME2|COL2 TABLENAME2|COL3 TABLENAME3|COL1 TABLENAME4|COL1 TABLENAME4|COL2 ... /*some other 1800 rows */ (是的,它是订购的.) TABLENAME1|COL1|COL2|NULL TABLENAME2|COL1|COL2|COL3 TABLENAME3|COL1|NULL|NULL TABLENAME4|COL1|COL2|NULL /* less then 1800 rows ;-) */ 是否可以使用Oracle SQL? 提前致谢! 解决方法如果要为每个调用生成查询或使用硬编码的max-column-count,那么您可以执行以下操作:WITH tab AS
(
SELECT table_name,column_name FROM user_tab_cols WHERE column_id <= 4
) -- user_tab_cols used to provide test data,use your table instead
SELECT MAX(c1) c1,MAX(c2) c2,MAX(c3) c3,MAX(c4) c4
FROM (SELECT table_name,DECODE( column_id,1,column_name ) c1,2,column_name ) c2,3,column_name ) c3,4,column_name ) c4
FROM ( SELECT table_name,column_name,ROW_NUMBER() OVER ( PARTITION BY table_name ORDER BY column_name ) column_id
FROM tab
)
)
GROUP BY table_name
ORDER BY table_name
如果以这种形式获得它就足够了 TABLENAME1|COL1,COL2 TABLENAME2|COL1,COL2,COL3 看看Tom Kyte的stragg. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 将所有Neo4J数据库加载到RAM
- 彻底删除SQL Server注册表的方法
- 解析Hibernate + MySQL中文乱码问题
- sql-server – 在SQL Server中创建可以保存存储过程结果的临
- redis常用命令、常见错误、配置技巧等分享
- sql – tsvector上的“to_tsquery”在使用“简单”和“英文
- sqlserver数据库主键的生成方式小结(sqlserver,mysql)
- sql-server – 确定是否有任何值为null,如果为true则为fals
- sql-server – 如何在不输出数据的情况下测试Sql Server Mg
- sql-server – 下载SQL Server Management Studio的SQL Ser
