MS SQL Server的遞迴查詢(2)
今天執行一遞迴SQL,報型別不匹配錯誤:
With QueryName
AS (
Select SiteID,SiteName,PSID,Path, 0 Level,
'/'+ SiteName SitePath
from SiteInfo
where PSID is null
Union all
Select a.SiteID,a.SiteName,a.PSID,a.Path, b.Level+1,
b.SitePath+ '/'+a.SiteName SitePath
from SiteInfo a, QueryName b
where a.PSID=b.SiteID
) select * from QueryName
訊息240,級別16,狀態1,第1 行
在遞迴查詢"QueryName" 的列"SitePath" 中,定位點型別和遞迴部分的型別不匹配。
解決辦法:
1、對列做顯式型別轉換;
2、with中第一條select的欄位長度一定要足夠長。
With QueryName
AS (
Select SiteID,SiteName,PSID,Path, 0 Level,
CAST('/'+ SiteName as varchar(4000)) SitePath
from SiteInfo where PSID is null
Union all
Select a.SiteID,a.SiteName,a.PSID,a.Path, b.Level+1,
cast(b.SitePath+ '/'+a.SiteName as varchar(4000))
from SiteInfo a, QueryName b
where a.PSID=b.SiteID
) select * from QueryName order by SitePath
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-743137/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MS SQL Server的遞迴查詢SQLServer遞迴
- SQL Server遞迴查詢SQLServer遞迴
- Sql Server 使用CTE實現遞迴查詢SQLServer遞迴
- Oracle SQL的遞迴查詢OracleSQL遞迴
- MS SQL Server查詢優化方法SQLServer優化
- MS SQL Server查詢優化方法SQLServer優化
- Oracle遞迴查詢sqlOracle遞迴SQL
- sql無限遞迴查詢SQL遞迴
- sql遞迴查詢子級SQL遞迴
- SQL server資料庫with as子句與遞迴查詢的實現SQLServer資料庫遞迴
- SQL Server 2005資料庫中表的遞迴查詢SQLServer資料庫遞迴
- MS SQL SERVER索引優化相關查詢SQLServer索引優化
- sql server遞迴SQLServer遞迴
- oracle中的遞迴sql查詢 connect by prior實現遞迴Oracle遞迴SQL
- Ms Sql Server查詢儲存過程中的內容SQLServer儲存過程
- SQL with as 的用法 以及遞迴函式的寫法 遞迴層次查詢SQL遞迴函式
- 11GR2遞迴With子查詢遞迴
- PostgreSQL 遞迴查詢SQL遞迴
- PostgreSQL=>遞迴查詢SQL遞迴
- SqlServer遞迴查詢SQLServer遞迴
- ORACLE 遞迴查詢Oracle遞迴
- sqlalchemy 遞迴查詢SQL遞迴
- 一個遞迴查詢遞迴
- 遞迴查詢子元素遞迴
- 使用SQL SERVER 2005/2008 遞迴CTE查詢樹型結構SQLServer遞迴
- grep遞迴查詢子目錄遞迴
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- SQL Server將直接傳遞查詢作為表使用的方法SQLServer
- ms sql server排序SQLServer排序
- 我對Postgresql遞迴查詢的理解SQL遞迴
- SQL Server 查詢分解SQLServer
- MS SQL Server常見問題 -- 分組 去重複 查詢 統計SQLServer
- java-遞迴(檔案查詢)Java遞迴
- SQL Server中CTE的另一種遞迴方式-從底層向上遞迴SQLServer遞迴
- SQL SERVER 查詢鎖資訊SQLServer
- SQL server跨庫查詢SQLServer
- Sql Server系列:子查詢SQLServer
- SQL server 查詢語句SQLServer