SQLServer2005下的遞迴查詢

2021-04-27 16:52:14 字數 959 閱讀 8214

在sqlserver2005下,遞迴查詢可以通過公共表示式(cte)來實現。

如下所示:

withcolumntree(projectid,parentid,columnid,columnname,columnurl,ifdel,tag,clevel)as(

select

projectid,

parentid,

columnid,

columnname,

columnurl,

ifdel,

columnid as tag,

0 as clevel

from

columncms

where

columnid=14

union

all

select

p.projectid,

p.parentid,

p.columnid,

p.columnname,

p.columnurl,

p.ifdel,

ch.tag,

ch.clevel+1

from

columncms p

inner join

columntree ch

on ch.parentid=p.columnid

select

columnid

from

columntree c

where

c.ifdel=0

order by

c.clevel desc

上面**中,綠色的部分定義了遞迴的「根」,而橘黃色部分則執行的是遞迴查詢。在遞迴公共表示式查詢時,必須使用union all。定義好cte後,就可以使用在cte中定義的列(深藍色部分)從cte中查詢。

SQL Server 2005下的分頁SQL

其實基本上有三種方法 1 使用sql server 2005中新增的row number 幾種寫法分別如下 1select top 20 from select 2 row number over order by namec as rownumber,3 4from 5 dbo.mem membe...

SQL Server 2005下的分頁SQL

1 使用sql server 2005中新增的row number 幾種寫法分別如下 code select top20 from select row number over order bynamec asrownumber,from dbo.mem member myresults where...

SQL Server2005複製實現

一 準備工作 1 在發布伺服器上建立乙個共享目錄,作為發布快照檔案的存放目錄。例如 在d 盤根目錄下建資料夾名為pub 2 設定sql 發布伺服器和訂閱伺服器均設定 步驟 開啟服務 控制面板 管理工具 服務 右擊sqlserver agent 屬性 登入 選擇 此帳戶 輸入或選擇第一步中建立的win...