Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获得表中除一列以外的所有列_Sql - Fatal编程技术网

Sql 如何获得表中除一列以外的所有列

Sql 如何获得表中除一列以外的所有列,sql,Sql,假设一个表中有20列,我想返回其中的19列。 我该怎么做 挑选* 我会给我所有的,但我只想要19个 对于这种情况有好的解决办法吗?差不多 选择*-[columnName] 没有,对不起。您可以使用*,也可以一次使用一个,但不能使用“除X、Y或Z以外的所有选项”。不,对不起。您可以选择*,也可以一次选择一个,但不能选择“除X、Y或Z以外的所有列”。您可以明确命名要选择的每一列。这是排除列的唯一方法。您可以显式命名要选择的每个列。这是排除列的唯一方法。如前所述,您可以对所有列使用选择*,或者如果不

假设一个表中有20列,我想返回其中的19列。 我该怎么做

挑选*

我会给我所有的,但我只想要19个

对于这种情况有好的解决办法吗?差不多

选择*-[columnName]


没有,对不起。您可以使用
*
,也可以一次使用一个,但不能使用“除X、Y或Z以外的所有选项”。

不,对不起。您可以选择
*
,也可以一次选择一个,但不能选择“除X、Y或Z以外的所有列”。

您可以明确命名要选择的每一列。这是排除列的唯一方法。

您可以显式命名要选择的每个列。这是排除列的唯一方法。

如前所述,您可以对所有列使用
选择*
,或者如果不想全部列出,则单独列出这些列

列出列看起来确实是件烦人的事,但有一个重要的原因说明它实际上是好的

虽然对于特殊查询没有问题,但强烈建议在代码中使用“不要使用
SELECT*
”,因为当数据库模式更改时,返回到应用程序的结果中会出现不同的列,这几乎肯定不是您想要的。如果您可以执行
select*,但客户的地址
也会有同样的问题:更改数据库会改变查询结果的结构,这是不好的


因此,不仅您不能这样做,我建议您即使可以也不要这样做。

如前所述,您可以对所有列使用
选择*
,或者如果您不想全部列,则单独列出这些列

列出列看起来确实是件烦人的事,但有一个重要的原因说明它实际上是好的

虽然对于特殊查询没有问题,但强烈建议在代码中使用“不要使用
SELECT*
”,因为当数据库模式更改时,返回到应用程序的结果中会出现不同的列,这几乎肯定不是您想要的。如果您可以执行
select*,但客户的地址
也会有同样的问题:更改数据库会改变查询结果的结构,这是不好的


因此,不仅您不能这样做,我建议您即使可以也不要这样做。

感谢您的最佳实践解释。根据您的逻辑,显式列出每个列名也不好,因为模式可能会更改,使这些列名不再有效。如果需要更改重构计划,您应该编写满足您需要的代码。这并不是说提前计划是不明智的,而是在需要更改时总是计划代码更改。@Myles:这不一样。如果列出列名和模式更改,查询将立即失败,并且您知道原因。如果
选择*
并更改模式,则查询将成功,代码可能会执行,但会出现奇怪但不明显的错误,因为数据不是预期的数据。这不仅仅是关于模式更改,而是关于更改时会发生什么。感谢您的最佳实践解释。根据您的逻辑,显式列出每个列名也是不好的,因为模式可能会更改,使这些列名不再有效。如果需要更改重构计划,您应该编写满足您需要的代码。这并不是说提前计划是不明智的,而是在需要更改时总是计划代码更改。@Myles:这不一样。如果列出列名和模式更改,查询将立即失败,并且您知道原因。如果
选择*
并更改模式,则查询将成功,代码可能会执行,但会出现奇怪但不明显的错误,因为数据不是预期的数据。这不仅仅是关于模式改变,而是当它改变时会发生什么。