Sql 如何获得表中除一列以外的所有列
假设一个表中有20列,我想返回其中的19列。 我该怎么做 挑选* 我会给我所有的,但我只想要19个 对于这种情况有好的解决办法吗?差不多 选择*-[columnName]Sql 如何获得表中除一列以外的所有列,sql,Sql,假设一个表中有20列,我想返回其中的19列。 我该怎么做 挑选* 我会给我所有的,但我只想要19个 对于这种情况有好的解决办法吗?差不多 选择*-[columnName] 没有,对不起。您可以使用*,也可以一次使用一个,但不能使用“除X、Y或Z以外的所有选项”。不,对不起。您可以选择*,也可以一次选择一个,但不能选择“除X、Y或Z以外的所有列”。您可以明确命名要选择的每一列。这是排除列的唯一方法。您可以显式命名要选择的每个列。这是排除列的唯一方法。如前所述,您可以对所有列使用选择*,或者如果不
没有,对不起。您可以使用
*
,也可以一次使用一个,但不能使用“除X、Y或Z以外的所有选项”。不,对不起。您可以选择*
,也可以一次选择一个,但不能选择“除X、Y或Z以外的所有列”。您可以明确命名要选择的每一列。这是排除列的唯一方法。您可以显式命名要选择的每个列。这是排除列的唯一方法。如前所述,您可以对所有列使用选择*
,或者如果不想全部列出,则单独列出这些列
列出列看起来确实是件烦人的事,但有一个重要的原因说明它实际上是好的
虽然对于特殊查询没有问题,但强烈建议在代码中使用“不要使用SELECT*
”,因为当数据库模式更改时,返回到应用程序的结果中会出现不同的列,这几乎肯定不是您想要的。如果您可以执行select*,但客户的地址也会有同样的问题:更改数据库会改变查询结果的结构,这是不好的
因此,不仅您不能这样做,我建议您即使可以也不要这样做。如前所述,您可以对所有列使用选择*
,或者如果您不想全部列,则单独列出这些列
列出列看起来确实是件烦人的事,但有一个重要的原因说明它实际上是好的
虽然对于特殊查询没有问题,但强烈建议在代码中使用“不要使用SELECT*
”,因为当数据库模式更改时,返回到应用程序的结果中会出现不同的列,这几乎肯定不是您想要的。如果您可以执行select*,但客户的地址也会有同样的问题:更改数据库会改变查询结果的结构,这是不好的
因此,不仅您不能这样做,我建议您即使可以也不要这样做。感谢您的最佳实践解释。根据您的逻辑,显式列出每个列名也不好,因为模式可能会更改,使这些列名不再有效。如果需要更改重构计划,您应该编写满足您需要的代码。这并不是说提前计划是不明智的,而是在需要更改时总是计划代码更改。@Myles:这不一样。如果列出列名和模式更改,查询将立即失败,并且您知道原因。如果选择*
并更改模式,则查询将成功,代码可能会执行,但会出现奇怪但不明显的错误,因为数据不是预期的数据。这不仅仅是关于模式更改,而是关于更改时会发生什么。感谢您的最佳实践解释。根据您的逻辑,显式列出每个列名也是不好的,因为模式可能会更改,使这些列名不再有效。如果需要更改重构计划,您应该编写满足您需要的代码。这并不是说提前计划是不明智的,而是在需要更改时总是计划代码更改。@Myles:这不一样。如果列出列名和模式更改,查询将立即失败,并且您知道原因。如果选择*
并更改模式,则查询将成功,代码可能会执行,但会出现奇怪但不明显的错误,因为数据不是预期的数据。这不仅仅是关于模式改变,而是当它改变时会发生什么。