我在下面的XML的dbName屬性中創建了一個逗號分隔的值列。現在我想根據Position屬性連接這些列。如何在SQL SERVER 2008中對XML列執行OrderBY
DECLARE @varXML AS XML =
'<gridFormat>
<column property="FacilityInternalID" dbName="Pname" HeaderText="TAT Health" IsVisible="1" Position="1" />
<column property="FacilityInternalID" dbName="Priority" HeaderText="Priority" IsVisible="1" Position="2" />
<column property="FacilityInternalID" dbName="JobID" HeaderText="Job Number" IsVisible="1" Position="3" />
<column property="FacilityInternalID" dbName="Status" HeaderText="Status" IsVisible="1" Position="6" />
<column property="FacilityInternalID" dbName="name" HeaderText="Customer" IsVisible="1" Position="4" />
<column property="FacilityInternalID" dbName="sname" HeaderText="Facility " IsVisible="1" Position="5" />
</gridFormat>'
PRINT @varXML
這是我生成CSV列的查詢。我必須將其用作選擇列表。
SELECT @ColumnsToDisplay = LEFT(MyCsvList, LEN(MyCsvList) - 1)
FROM (SELECT (SELECT row.value('@property',
'varchar(200)') + ', ' AS [text()]
FROM @varXML.nodes('gridFormat/column')
AS d (row)
FOR
XML PATH('')
) AS MyCsvList
) AS MyCsvListFinal
SET @SQL = 'SELECT ' + @ColumnsToDisplay
+ ' FROM JobListingDetails'
結果應該是
select Pname,Priority,JobID,name,sname,status FROM JobListingDetails.
請幫助。
如何訂購它的位置的基本屬性 – Rohit 2010-04-22 11:24:30
@Rohit我已經更新了我的答案排序的Postition屬性 – edosoft 2010-04-22 11:57:01
非常感謝,它解決了我的問題。 – Rohit 2010-04-22 12:02:20