我有一個名爲PurchaseOrderDetail的表。SQL Server 2005 - Select語句中的表函數
TABLE PurchaseOrderDetail
PurchaseOrderDetail int,
Comments nvarchar(500)
在每個項目的註釋字段我有一個「;」是存儲合同名稱,合同號,許可證名稱,許可證版本分隔的列表。
即
PurchaseOrderDetail Comments
1 'Microsoft Office Standard 2007;12%;;'
2 'Microsoft Visio 2007;9%;;'
我也有一個功能叫做拆分,需要一個分隔符和一個字符串,並返回一個表,
所以調用此 SELECT * FROM斯普利特(「;」,「微軟Office標準版2007; 12%;;「)
返回此
pn s [ column names]
1 Microsoft Office Standard 2007
2 12%
我要打破這種信息對每個PurchaseOrderDetail,並顯示他們在一份報告中
因此,像這樣
select PurchaseOrderDetailID, cn.s as ContractName, cno.s as ContractNo
from dbo.PurchaseOrderDetail as pod
join dbo.Split(';', pod.Comments) as cn on cn.pn = 1
join dbo.Split(';', pod.Comments) as cno on cno.pn = 2
雖然不運行,但我希望它表明意圖。
我想我的結果是:
PurchaseOrderDetailID ContractName ContractNo
1 Microsoft Office Standard 2007 12%
是否有可能,還是我處理這個錯誤的方式
感謝馬特,如果你找到自己的方式進入墨爾本的某個時候,我們將不得不給你一個啤酒 – Jiminy 2009-05-22 06:14:55