Mega Code Archive

 
Categories / MSSQL Tutorial / XML
 

XPath search and element index

3> 4> CREATE TABLE dbo.ProductBilling 5> (ProductBillingID int IDENTITY(1,1) PRIMARY KEY, 6> ProductBillingXML XML NOT NULL) 7> GO 1> 2> INSERT dbo.ProductBilling(ProductBillingXML) 3> VALUES ('<ProductBilling Billingnumber="1" customerid="22" orderdate="7/1/2005"> 4~ <OrderItems> 5~ <Item id="22" qty="1" name="SQL"/> 6~ <Item id="24" qty="1" name="T-SQL"/> 7~ </OrderItems> 8~ </ProductBilling>') 9> GO (1 rows affected) 1> INSERT dbo.ProductBilling 2> (ProductBillingXML) 3> VALUES ('<ProductBilling Billingnumber="1" customerid="40" orderdate="7/11/2005"> 4~ <OrderItems> 5~ <Item id="11" qty="1" name="Notes"/> 6~ </OrderItems> 7~ </ProductBilling>') 8> GO (1 rows affected) 1> INSERT dbo.ProductBilling 2> (ProductBillingXML) 3> VALUES ('<ProductBilling Billingnumber="1" customerid="9" orderdate="7/22/2005"> 4~ <OrderItems> 5~ <Item id="11" qty="1" name="SQL Notes"/> 6~ <Item id="24" qty="1" name="T-SQL Notes"/> 7~ </OrderItems> 8~ </ProductBilling>') 9> GO (1 rows affected) 1> 2> set quoted_identifier on 3> 4> SELECT DISTINCT 5> ProductBillingXML.value 6> ('(/ProductBilling/OrderItems/Item/@name)[1]', 'varchar(30)') as BookTitles 7> FROM dbo.ProductBilling 8> UNION 9> SELECT DISTINCT 10> ProductBillingXML.value 11> ('(/ProductBilling/OrderItems/Item/@name)[2]', 'varchar(30)') 12> FROM dbo.ProductBilling 13> GO BookTitles ------------------------------ NULL Notes SQL SQL Notes T-SQL T-SQL Notes (6 rows affected) 1> 2> set quoted_identifier off 3> 4> drop table dbo.ProductBilling 5> GO