powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сортировать вложенные xml теги без явного указания их имен с помощью XQuery?
2 сообщений из 2, страница 1 из 1
Как сортировать вложенные xml теги без явного указания их имен с помощью XQuery?
    #39814985
Wigggi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня получается сортировать только по одному уровню:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DECLARE @myxml xml = ' 
<root> 
  <lev1_2>
      <lev2_8/> 
      <lev2_5/> 
  </lev1_2> 
  <lev1_3/> 
  <lev1_2> 
      <lev2_7/> 
      <lev2_3/> 
  </lev1_2>
  <lev1_1/>  
</root> 
' 

SET @myxml =@myxml.query(' 
  <root> {
    for $k1 in (/*/*) 
    order by fn:local-name($k1) 
    return $k1
  } 
  </root>
')
...
Рейтинг: 0 / 0
Как сортировать вложенные xml теги без явного указания их имен с помощью XQuery?
    #39815272
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wigggi,

извращение какое-то
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
DECLARE @myxml xml = ' 
<root> 
  <lev1_2>
      <lev2_8/> 
      <lev2_5/> 
  </lev1_2> 
  <lev1_3/> 
  <lev1_2> 
      <lev2_7/> 
      <lev2_3/> 
  </lev1_2>
  <lev1_1/>  
</root> 
'
DECLARE @mydata NVARCHAR(MAX) = CONVERT( NVARCHAR(MAX), @myxml ) 
;
CREATE TABLE #t ( [node] VARCHAR(10), [src] VARCHAR(MAX), [new] NVARCHAR(MAX) )
;
INSERT
INTO
  #t
SELECT
  [node]  = CONVERT( VARCHAR(10), t.x.value( 'fn:local-name(.)', N'VARCHAR(10)' ) ),
  [src]   = CONVERT( VARCHAR(MAX), t.x.query( '.' ) ),
  [new]   = CONVERT( VARCHAR(MAX), t.x.query( 'for $k1 in (./*) 
    order by fn:local-name($k1) 
    return $k1' ) )
FROM
  @myxml.nodes( '//*' ) t( x )
;
SELECT
  @mydata = REPLACE( @mydata, [src], '<' + [node] + '>' + [new] + '</' + [node] + '>' )
FROM
  #t
;
SELECT
  CONVERT( XML, @mydata )
;
DROP TABLE #t
;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сортировать вложенные xml теги без явного указания их имен с помощью XQuery?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]