SQL查询以排除不必要的列

时间:2017-08-28 11:26:16

标签: oracle

假设一个表由oracle数据库中的50列组成,需要选择超过45列,但是任何时候通过编写每个列的名称来选择超过45列的名称是时间浪费,因此需要通过排除选择超过45列oracle数据库中不必要的列,如何解决要求??

2 个答案:

答案 0 :(得分:1)

只需编写一个视图,选择您要选择的每一列

create view example as select [your columns] from [your table];

然后只需选择视图:

select * from example;

答案 1 :(得分:0)

您可以将动态SQL与ALL_TAB_COLUMNS

一起使用
SELECT t.table_name,
       'SELECT ' 
       || listagg(t.column_name,' ,') WITHIN GROUP(ORDER BY t.column_name) 
       || ' FROM ' || t.table_name as BuiltSQL
FROM ALL_TAB_COLUMNS t
WHERE t.table_name = 'YourTableName'
  and t.column_name NOT IN('UnNecessaryCol1','col2',...)
GROUP BY t.table_name

这将生成一个SQL代码供您使用。