SQL Server 2005中的T SQL增強D

2021-05-21 18:39:38 字數 1366 閱讀 1687

遞迴的通用表表示式

遞迴的cte是根據至少兩個查詢(或者稱為兩個成員)構建的,乙個是非遞迴查詢,也成為固定成員,只能呼叫一次,另外乙個是遞迴查詢,也成為遞迴成員(rm),可以反覆呼叫,直到查詢不再返回行。查詢由union all運算子連線為乙個單獨的cte。

--使用遞迴的通用表表示式

gocreate table carparts

(carid int not null,

part varchar(15),

subpart varchar(15),

qty int)go

insert carparts values (1, 'body', 'door', 4)

insert carparts values (1, 'body', 'trunk lid', 1)

insert carparts values (1, 'body', 'car hood', 1)

insert carparts values (1, 'door', 'handle', 1)

insert carparts values (1, 'door', 'lock', 1)

insert carparts values (1, 'door', 'window', 1)

insert carparts values (1, 'body', 'rivets', 1000)

insert carparts values (1, 'door', 'rivets', 100)

insert carparts values (1, 'door', 'mirror', 1)

goselect * from carparts

gowith carpartscte(subpart, qty)as(

-- 固定成員 (am):

-- select查詢無需參考carpartscte

select subpart, qty

from carparts

where part = 'body'

union all

-- 遞迴成員 (rm):

-- select查詢參考carpartscte

select carparts.subpart, carpartscte.qty * carparts.qty

from carpartscte

inner join carparts on carpartscte.subpart = carparts.part

where carparts.carid = 1

)-- 外部查詢

select subpart, sum(qty) as totalnum

from carpartscte

group by subpart

sql server 2005中的output子句

今天看了下sql server 2005中的output子句,以使您可以從修改語句 insert update delete 中將資料返回到表變數中。帶結果的 dml 的有用方案包括清除和存檔 訊息處理應用程式以及其他方案。這一新的 output 子句的語法為 output into table v...

With在sql server 2005中的用法

with在msdn中的講解,可以參考鏈結 1 2 建立錶值變數型別 3 4create type ty newareagoods as table 5 areaid int notnull,6 goodsid int notnull 7 8 9 創鍵返回今天 的資料 10 根據有 的地區獲取參 11...

sql server 2005中的output子句

今天看了下sql server 2005中的output子句,以使您可以從修改語句 insert update delete 中將資料返回到表變數中。帶結果的 dml 的有用方案包括清除和存檔 訊息處理應用程式以及其他方案。這一新的 output 子句的語法為 output into table v...