Работа с типом данных XML (SQL SERVER 2005) - PullRequest
1 голос
/ 22 октября 2009

У меня есть таблица с 2 столбцами EmployeeId (int) и EmployeeDetails (тип XMl)

EmployeeId EmployeeDetails

1 Приянка 24

Аргентина

2 Саркар 28

Австралия

Мне нужно иметь вывод, как

EmployeeId EmpName Возраст Адрес


1 Приянка 24 Аргентина

2 Sarkar 28 Австралия

Пожалуйста, помогите, поскольку я новичок в XML

1 Ответ

5 голосов
/ 22 октября 2009

Books Online немного не поддается расшифровке на тему 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 )   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...