更新时间:2022-08-12 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;
|
父主题: 批作业SQL语法