背景信息
序数位置表示法(又称为序数)是基于 SELECT 子句中列列表中的列顺序(而不是列名称或列别名)的列简写。 ORDER BY
子句通常受支持,某些数据库(MySQL 3.23+、PostgreSQL 8.0+)也支持 GROUP BY
子句的语法。
这是使用序数的示例:
GROUP BY 1, 2
ORDER BY 1, 2
它不好用,因为它会使查询变得脆弱 - 如果列顺序发生变化,则需要更新序号,否则查询将不会返回您想要的结果。如果这些位置处的列包含在聚合中,那么在 GROUP BY
中使用时,您很可能会收到错误...
问题
我能想到的唯一好处是,如果您不使用存储过程或函数(这使得顺序使用对我来说毫无意义),那么通过网络发送的数据就会减少。我还缺少其他任何好处吗?
最佳答案
我会用它:
- 如果您喜欢排除故障
- 创建不带智能感知的即席查询
没有什么好处。
无论如何,SQL Server 只支持 ORDER BY。在其他任何地方,它都是要计算的表达式。
关于sql - 使用 SQL 序数位置表示法的好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2253040/