1
DECLARE @x varchar(250), @xx xml
的月列表。如果我在我的SP部門ID的傳入的名單看起來是這樣的:存儲過程接收逗號月表ID要檢索逗號解碼值
set @x = '3, 9, 10, 12, 14'
我可以很容易地將其轉換成XML和查詢它是這樣的:
set @xx = '<xml><e>' + REPLACE(@x,', ','</e><e>') + '</e></xml>'
select @xx
返回:
<xml><e>3</e><e>9</e><e>10</e><e>12</e><e>14</e></xml>
而且
select @xx.query('for $d in /xml/e return data($d)')
返回:
3 9 10 12 14
使用XML路徑我可以手動獲得逗號分隔的部門名稱的列表,當我知道前手的DeptIDs
select SUBSTRING((SELECT (', '+DeptName) from vDepartments where DeptID in (3, 9, 10, 12, 14) for xml path('')), 3, 1000)
但是,我認爲我應該能夠從上面的XML做到這一點:
select SUBSTRING((SELECT (', '+DeptName) from vDepartments where DeptID in @xx.query('for $d in /xml/e return string($d)') for xml path('')), 3, 1000)
什麼是錯誤?你已經傳達了你想要做的事情......但是當你嘗試時不會發生什麼。 – RThomas 2011-06-16 04:15:51