Sql Oracle |除了

Sql Oracle |除了,sql,oracle,Sql,Oracle,如何从表中选择除两列或三列以外的所有列? 我处理了很多超过50列的表,所以我无法列出列名 我希望它能起作用,但是不行 SELECT( SELECT column_name FROM all_tab_columns WHERE table_name = <table_name> AND column_name NOT IT (<columns_name>) ) from <table_name>; 您能帮助我吗?您可以通过pl/sql过程动态构造查询,然后使用

如何从表中选择除两列或三列以外的所有列? 我处理了很多超过50列的表,所以我无法列出列名

我希望它能起作用,但是不行

SELECT(
SELECT column_name FROM all_tab_columns
WHERE table_name = <table_name>
AND column_name NOT IT (<columns_name>)
)
from <table_name>;

您能帮助我吗?

您可以通过pl/sql过程动态构造查询,然后使用execute immediate运行它

我找到了一些解决方法,因为pl/sql很难进行简单的选择:

CREAT TABLE <tmp> AS SELECT * FROM <table_name>;
ALTER TALBE <tmp> DROP COLUMN <column_name>;
SELECT * FROM <tmp>;
DROP TALBE <tmp>;
这将是有用的简单查询。。。
但是对于开发来说,PL/SQL将更加通用,针对服务器等进行了优化。

您是说假设一个表有col1、col2……col50。然后你想选择除col2、col4、col6等之外的所有列。对吗?你不能列出列名是什么意思?什么阻止了你?乌萨夫,你是对的。那样的话,不可能。请参见*+除+ONOK。非常感谢。我找不到搜索,不知道QueryEah,PL-是的,但我找到了通过SQL解决此任务的方法。。。事实证明,这是不可能的,请让我直截了当,你说PL/SQL太难了,反而复制了你的表????为什么不简单地创建一个只包含所需列的视图呢?Frank,我提供了一个说明,PL对开发团队非常有用,但是使用不同的列列表执行单个查询手册是没有用的。