時(shí)間:2024-02-08 11:17作者:下載吧人氣:24
在編寫T-SQL代碼時(shí),往往需要臨時(shí)存儲(chǔ)某些結(jié)果集。前面我們已經(jīng)廣泛使用和介紹了兩種臨時(shí)存儲(chǔ)結(jié)果集的方法:臨時(shí)表和表變量。除此之外,還可以使用公用表表達(dá)式的方法。
公用表表達(dá)式(Common Table Expression)是SQL Server2005版本的引入的一個(gè)特性。CTE可以看組是一個(gè)臨時(shí)的結(jié)果集,可以再接下來來的一個(gè)SELECT,INSERT,UPDATE,DELETE,MERGE語句中多次引用。
使用公用表達(dá)式CTE可以讓語句更加清晰簡練。與公用表達(dá)式作用類似的還有臨時(shí)表和表變量。下面給出三種方法的對(duì)比。
根據(jù)微軟對(duì)CTE好處的描述,可以歸結(jié)為四點(diǎn):
WITH AS-做子查詢部分(subquery factoring)。
它用于定義一個(gè)SQL片段,該片段會(huì)被是整個(gè)SQL語句所用到。如果WITH AS所以定的表名被調(diào)用兩次以上,則優(yōu)化器會(huì)自動(dòng)將WITH AS所獲取的數(shù)據(jù)放入臨時(shí)表里,如果只是被調(diào)用一次,則不會(huì)。
可以通過materialize將WITH AS短語里的數(shù)據(jù)強(qiáng)制放入全局臨時(shí)表里。
WITH AS可以被緊跟著的一條SQL語句所使用多次,但不能被緊跟著的多條SQL語句使用。
WITH B AS
網(wǎng)友評(píng)論