pri*_*kar 1 xml sql t-sql sql-server sql-server-2005
我有一个表有2列EmployeeId(int)和EmployeeDetails(XMl类型)的表
EmployeeId EmployeeDetails
1 <Employee> <EmployeeDetails> <EmployeeName> Priyanka </ EmployeeName> <Age> 24 </ Age> <Address> Argentina </ Address> </ EmployeeDetails> </ Employee>
2 <Employee> <EmployeeDetails> <EmployeeName> Sarkar </ EmployeeName> <Age> 28 </ Age> <Address> Australia </ Address> </ EmployeeDetails> </ Employee>
我需要输出像
EmployeeId EmpName年龄地址
1 Priyanka 24阿根廷
2 Sarkar 28 Australia
请帮忙,因为我是xml的新手
关于XML的主题,联机丛书有点难以辨认; 您可以尝试使用此站点寻求帮助:http://blogs.msdn.com/mrorke/archive/2005/06/01/423965.aspx 这里有一段代码可以帮助您.
DECLARE @Employees TABLE
(
EmployeeID INT ,
EmployeeDetails XML
)
INSERT INTO @Employees
( EmployeeID ,
EmployeeDetails
)
VALUES ( 1 ,
'<Employee><EmployeeDetails><EmployeeName> Priyanka </EmployeeName><Age> 24 </Age><Address> Argentina</Address></EmployeeDetails></Employee>'
)
INSERT INTO @Employees
( EmployeeID ,
EmployeeDetails
)
VALUES ( 2 ,
'<Employee><EmployeeDetails><EmployeeName> Sarkar </EmployeeName><Age> 28 </Age><Address> Australia</Address></EmployeeDetails></Employee>'
)
SELECT EmployeeID ,
EmployeeName = m.value('EmployeeName[1]', 'varchar(50)') ,
Age = m.value('Age[1]', 'int') ,
Address = m.value('Address[1]', 'varchar(100)')
FROM @Employees e
CROSS APPLY EmployeeDetails.nodes('/Employee/EmployeeDetails') AS e1 ( m )
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
346 次 |
最近记录: |