SQL

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

发布于 2021-05-10 20:48:57

只是对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)

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

关注者
0
被浏览
75
1 个回答
  • 面试哥
    面试哥 2021-05-10
    为面试而生,有面试问题,就找面试哥。

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

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

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

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

    但是也有例外:MySQL和Postgres似乎还具有其他一些聪明之处。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看