我们都知道,要从表中选择所有列,可以使用

SELECT * FROM tableA

是否有一种方法可以在不指定所有列的情况下从表中排除列?

SELECT * [except columnA] FROM tableA

我所知道的唯一方法是手动指定所有列并排除不需要的列。这真的很耗时,所以我正在寻找方法来节省时间和精力,以及未来的维护表应该有更多/更少的列。


当前回答

如果有人像我一样使用MySql,请使用这个:

CREATE TABLE TempTable AS SELECT * FROM #YourTable; 

ALTER TABLE TempTable 
DROP COLUMN #YourColumn; 

SELECT * FROM TempTable; 
DROP TABLE TempTable;

其他回答

如果你想排除一个敏感的大小写列,例如密码,我这样做是为了隐藏值:

SELECT * , "" as password FROM tableName;

在SQL Management Studio中,您可以展开对象资源管理器中的列,然后将columns树项拖到查询窗口中,以获得以逗号分隔的列列表。

您可以使用REGEX列规范。

下面的查询选择除ds和hr之外的所有列 选择(ds |人力资源)? +。+来自销售

就像其他人说的那样,没有办法做到这一点,但如果你使用Sql Server,我使用的一个技巧是将输出更改为逗号分隔,那么就这样做

select top 1 * from table

并从输出窗口中剪切整个列列表。然后你可以选择你想要的列,而不必把它们全部输入。

如果您正在使用SQL Server Management Studio,那么请执行以下操作:

输入所需的表名并选择它 按Alt + F1 O /p表示表中的列。 选择所需的列 复制并粘贴这些在您的选择查询 触发查询。

享受。