'daki özniteliklerini nasıl döndürebilirim Bir tabloda XML sütununda bir dizi öznitelikle birden çok öğe içeren bir pivot gerçekleştirmem gerekiyor. Her elemandaki özellikler her zaman aynıdır, ancak elemanların sayısı değişecektir. (Kullanıcı adı, ad, soyadı ve Newfield Bu örnekte) bunlara karşılık gelen fieldValue gibi niteliklerini Bir XML sütununun T-SQL
FormEntryId | FormXML | DateCreated
====================================================================================
1 |<Root> | 10/15/2009
| <Form> |
| <FormData FieldName="Username" FieldValue="stevem" /> |
| <FormData FieldName="FirstName" FieldValue="Steve" /> |
| <FormData FieldName="LastName" FieldValue="Mesa" /> |
| </Form> |
|</Root> |
| |
------------------------------------------------------------------------------------
2 |<Root> | 10/16/2009
| <Form> |
| <FormData FieldName="Username" FieldValue="bobs" /> |
| <FormData FieldName="FirstName" FieldValue="Bob" /> |
| <FormData FieldName="LastName" FieldValue="Suggs" /> |
| <FormData FieldName="NewField" FieldValue="test" /> |
| </Form> |
|</Root> |
ben her farklı AlanAdı için ayarlanmış bir sonuçla kadar rüzgar öznitelik değerleri lazım ... bana bir örnek vereyim değer. Ben statik sütunları
SELECT
FormEntryId,
FormXML.value('/Root[1]/Form[1]/FormData[@FieldName="Username"][1]/@FieldValue','varchar(max)') AS Username,
FormXML.value('/Root[1]/Form[1]/FormData[@FieldName="FirstName"][1]/@FieldValue','varchar(max)') AS FirstName,
FormXML.value('/Root[1]/Form[1]/FormData[@FieldName="LastName"][1]/@FieldValue','varchar(max)') AS LastName,
FormXML.value('/Root[1]/Form[1]/FormData[@FieldName="NewField"][1]/@FieldValue','varchar(max)') AS NewField,
DateCreated
FROM FormEntry
ile bunu yapmanın bir yolunu ettik
FormEntryId | Username | FirstName | LastName | NewField | DateCreated
======================================================================
1 | stevem | Steve | Mesa | NULL | 10/15/2009
----------------------------------------------------------------------
2 | bobs | Bob | Suggs | test | 10/16/2009
Ancak bir yöntem olup olmadığını görmek istiyorum: Örneğin sonuçları Ben gibi görünecektir yukarıda verdi sütunların, "FieldName" özellik değerlerinin farklı kümelerine dayalı olarak dinamik olmasını sağlayın.
+1. –