With定义与用法
-------部分内容为转载并经整理处理---------------------
1.with理解与基本用法
说起WITH
语句,除了那些第一次听说WITH语句的人,大部分人都觉得它是用来做递归查询的。其实那只是它的一个用途而已,
它的本名正如我们标题写的那样,叫做:公共表表达式(Common Table
Expression),从字面理解,大家觉得它是用来干嘛的呢?
其实,它是用来定义临时集合的。啊?VALUES语句不是用来定义临时集合的吗?怎么WITH语句也用来定义临时集合呢?它们有什么区别呢?
VALUES语句是用明确的值来定义临时集合的,如下:
values (1,2), (1,3),(2,1)
WITH语句是用查询(也就是select语句)来定义临时集合的,从这个角度讲,有点像视图,不过不是视图,大家千万别误解。例如下:
--建表
DROP TABLE USER;
CREATE TABLE USER (