SQL查询以选择表中除两列以外的所有列

SQL查询以选择表中除两列以外的所有列,sql,ms-access,Sql,Ms Access,我在ms access中有一个列名为a到H的表 TableA A B C D E F G H 如何编写查询以选择除B和F列之外的所有列。查询结果应为 A C D E G H 我们有这样的吗 select * from TableA except B, F ? 不,你被困住了 select a, c, d, e, g, h from TableA 你不能这样做。它是“*”或只是您指定的字段。这是个大问题吗?或者只是你想要更整洁的东西?不,我们不想要。你必须使用 SELEC

我在ms access中有一个列名为a到H的表

TableA 

A   B  C  D  E  F G  H
如何编写查询以选择除B和F列之外的所有列。查询结果应为

A C D E G H
我们有这样的吗

select * from TableA except B, F ?

不,你被困住了

select a, c, d, e, g, h from TableA

你不能这样做。它是“*”或只是您指定的字段。这是个大问题吗?或者只是你想要更整洁的东西?

不,我们不想要。你必须使用

SELECT A, C, D, E, G, H 
FROM TableA

如果你问我,这很好。SELECT*已经够邪恶了。

我不确定,但明确指定要选择的列肯定更好。这使得对表的任何潜在更改都更容易接受,因为您可以使用别名等

select A, C, D, E, G, H from TableA
或者,创建一个视图并从中选择,如下所示:

CREATE VIEW vTableA
as   
select A, C, D, E, G, H from TableA

这有点让人头疼,我在这个论坛上找到了另一种方法来做这件事,但是是的,你被困在定义每一个专栏上了。但是,您可以通过执行以下操作来获取所有列:

select ',[' + column_name + ']'
from information_schema.columns
where table_name = 'your_table_name'
这样可以很快排除不需要的列。当您有50多列时,它特别有用

select ',[' + column_name + ']'
from information_schema.columns
where table_name = 'your_table_name'