下面SQL 中的;with 是啥意思,为啥一定要加上':with'呢,起啥作用呢。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下面SQL 中的;with 是啥意思,为啥一定要加上':with'呢,起啥作用呢。相关的知识,希望对你有一定的参考价值。

;with
digits (i) as(--set up a set of numbers from 0-9
select i
from (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) as digits (i))
--builds a table from 0 to 99999
,sequence (i) as (
SELECT D1.i + (10*D2.i) + (100*D3.i) + (1000*D4.i) + (10000*D5.i)
FROM digits AS D1 CROSS JOIN digits AS D2 CROSS JOIN digits AS D3
CROSS JOIN digits AS D4 CROSS JOIN digits AS D5)
select i, nchar(i) as character
from sequence
where i between 48 and 122 --vary to include any characters
--in the character set of choice
order by nchar(i) collate Latin1_General_bin --change to the collation you
--are trying
GO

SQL 语句里面的 with
是使用在 CTE 上面的

CTE(Common Table Expression) ,即公用表表达式,可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE ⅥEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。
参考技术A With用来给子查询命名的,括号里是列名
跟from后的 (select .... From table)t 类似,写法不一样而已
参考技术B 这个没有用过。
你说的是 ms SQL吗。

sql里面 with...as 是啥意思啊?如何使用

求别复制,那些咱全看过了,看不懂...
~用简单的方法来解释
谢谢~

with...as是用来定义sql代码片段的语句,一般是在sql嵌套查询比较多的时候应用,可以增加sql语句的可读性。下面我以sql server来具体演示一下with...as怎么用:

1、准备要操作的数据,假设要查询下面年龄大于40岁的数据,如下图所示

2、用with...as将查询结果定义成一个表cr,cr不是硬性要求,你可以自己定义成喜欢的名字,如下图所示

3、然后就可以直接从cr表中查询数据,如下图所示

4,最后我们可以看到需要的数据从cr中被查询出来了,如下图所示

参考技术A 是公用表表达式,可以理解为创建临时表。比如
WITH A AS(SELECT * FROM TABLE1)
SELECT * FROM A追问

和view 的性质是一样的吗?

追答

类似,VIEW语句是真正的创建了一个对象,WITH AS 公用表表达式不创建对象,只能被后随的SELECT语句使用

追问

用with as 时, 后面必须加上select来立刻查询吗?

追答

对,但是可以像一个表一样在后续的SELECT语句中设定WHERE条件或连接其他表等。

本回答被提问者采纳
参考技术B 你把with .. as

当成一个临时的视图,就可以了

以上是关于下面SQL 中的;with 是啥意思,为啥一定要加上':with'呢,起啥作用呢。的主要内容,如果未能解决你的问题,请参考以下文章

linux: #ping -b 192.168.1.255 这个命令是啥意思?为啥要加-b 参数?

sql里面 with...as 是啥意思啊?如何使用

onclick="return confirm(' ')" 是啥意思为啥要加return?

C语言 counter=counter+1 是啥意思,为啥后面要加1,去掉行吗?与while 有什关系?

SQL中的max(sname)是啥意思?

SQL创建表里边的with是啥意思