【发布时间】:2010-10-18 06:28:33
【问题描述】:
我们都知道要从表中选择所有列,我们可以使用
SELECT * FROM tableA
有没有办法在不指定所有列的情况下从表中排除列?
SELECT * [except columnA] FROM tableA
我知道的唯一方法是手动指定所有列并排除不需要的列。这真的很耗时,所以我正在寻找方法来节省时间和精力,以及如果表有更多/更少的列,以及将来的维护。
【问题讨论】:
-
如果有这个功能会很方便,不是放入生产代码,而是用于故障排除。示例:我有一个表,其中有几个我查询的列,但我想快速省略一两列文本。
-
我想添加另一个这样做的理由:
SELECT DISTINCT *除了键列可以在没有其他人创建的重复行的情况下工作 -
我同意这很耗时。这就是为什么我通常只是右键单击表格,选择“选择前 1000 行”,然后删除我不想要的列。
-
不要忘记:在许多情况下,开发人员不知道列,因为它们可以更改。这在数据仓库中很典型。 6 个月后,他们添加了一个额外的列,应该在不更改代码的情况下选择它。
-
这样的特性有很多用例(从 SELECT * 中排除 n 列,而不是 1 列),它真的应该被添加到 SQL 的 ANSI 标准中。
标签: sql sql-server tsql