【发布时间】:2015-12-15 15:39:08
【问题描述】:
这是我的桌子
Equipmentid Application Value
=========== =========== =====
k001 THK True
k001 BHK False
k001 KHK True
这是我的预期:
Equipmentid THK BHK KHK
=========== === === ===
k001 True False True
我正在尝试使用max decode使用普通的转置Oracle,但最后需要提到AS [tablename],我想根据行名动态创建行到列,这个数据库将涉及很多应用程序。谢谢大家
【问题讨论】:
-
您可能在这里误用了数据库。检索数据并在您的客户端执行,无论是 PL/SQL 还是任何其他 OCI 方法。
-
@MaheswaranRavisankar,这是我从数据库中得到的视图,没有机会解决这个问题?
-
您需要动态构造 SQL 语句。像stackoverflow.com/questions/32451072/… 这样的东西要复杂得多,而且这意味着您必须读取一次数据,构建查询,然后再次读取数据,效率并不高。
-
嗨@JustinCave,我从视图中得到了这个数据库,我需要用应用程序对每个设备ID 进行分类,即真假。我需要插入大约 3000 台设备。
-
如果您希望列的数量和名称是动态的,则需要动态 SQL。如果您希望不同行的列数和名称不同,那么,是的,您需要多个查询。如果要为表中存在的任何
application创建列,可以动态创建单个SQL 语句
标签: sql oracle oracle11g transpose