更新时间:2022-12-07 GMT+08:00
WITH...AS
功能描述
通过用WITH...AS定义公共表达式(CTE)来简化查询,提高可阅读性和易维护性。
语法格式
1
|
WITH cte_name AS (select_statement) sql_containing_cte_name; |
关键字
- cte_name:公共表达式的名字,不允许重名。
- select_statement:完整的SELECT语句。
- sql_containing_cte_name:包含了刚刚定义的公共表达式的SQL语句
注意事项
- 定义了一个CTE后必须马上使用,否则这个CTE定义将失效。
- 可以通过一次WITH定义多个CTE,中间用逗号连接,后定义的CTE可以引用已经定义的CTE。
示例
将“SELECT courseId FROM course_info WHERE courseName = 'Biology'”定义为公共表达式nv,然后在后续的查询中直接利用nv代替该SELECT语句。
1
|
WITH nv AS (SELECT courseId FROM course_info WHERE courseName = 'Biology') SELECT DISTINCT courseId FROM nv; |
父主题: Spark SQL语法参考