gpt4 book ai didi

SQL - 在分组依据中使用别名

转载 作者:行者123 更新时间:2023-12-03 04:26:10 24 4
gpt4 key购买 nike

只是对 SQL 语法感到好奇。所以如果我有

SELECT 
itemName as ItemName,
substring(itemName, 1,1) as FirstLetter,
Count(itemName)
FROM table1
GROUP BY itemName, FirstLetter

这是不正确的,因为

GROUP BY itemName, FirstLetter 

确实应该

GROUP BY itemName, substring(itemName, 1,1)

但是为什么我们不能为了方便而简单地使用前者呢?

最佳答案

SQL 的实现就像按以下顺序执行查询一样:

  1. FROM 子句
  2. WHERE 子句
  3. GROUP BY 子句
  4. HAVING 子句
  5. SELECT 子句
  6. ORDER BY 子句

对于大多数关系数据库系统,此顺序解释了哪些名称(列或别名)有效,因为它们必须已在上一步中引入。

因此,在 Oracle 和 SQL Server 中,您不能在 SELECT 子句中定义的 GROUP BY 子句中使用术语,因为 GROUP BY 在 SELECT 子句之前执行。

但也有异常(exception):MySQL 和 Postgres 似乎有额外的智能来允许它。

关于SQL - 在分组依据中使用别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3841295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com