Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / xmlAGG / 6 сообщений из 6, страница 1 из 1
27.10.2006, 14:38
    #34087192
risfek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xmlAGG
Привет.
Есть табличка
Код: plaintext
1.
WITH t (x1,x2,x3) AS (VALUES ( 1 , 1 , 1 ),( 1 , 2 , 2 ),( 1 , 3 , 3 ))

для представления ее в xml 2х уровней можно попользоватся xmlAGG
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    WITH t (x1,x2,x3) AS (VALUES ( 1 , 1 , 1 ),( 1 , 2 , 2 ),( 1 , 3 , 3 ))
SELECT x1
,xml2clob(
XMLELEMENT(NAME "L1",
                XMLELEMENT(NAME "X1", x1)
                ,xmlAGG(
                        XMLELEMENT(NAME "L2"
                                , XMLELEMENT(NAME "X2", x2)
                                )
                        )
                )
) AS outdata
FROM t
group by x1
получится так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  <L1>
      <X1> 1 </X1>
      <L2>
          <X2> 1 </X2>
      </L2>
      <L2>
          <X2> 2 </X2>
       </L2>
      <L2>
          <X2> 3 </X2>
       </L2>
   </L1>
а как можно сделать больше уровней?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
      <L1>
      <X1> 1 </X1>
      <L2>
          <X2> 1 </X2>
          <L3>
              <X3> 1 </X3>
          </L3>
      </L2>
      <L2>
          <X2> 2 </X2>
          <L3>
              <X3> 1 </X3>
          </L3>
       </L2>
      <L2>
          <X2> 3 </X2>
          <L3>
              <X3> 1 </X3>
          </L3>
       </L2>
   </L1>
...
Рейтинг: 0 / 0
30.10.2006, 14:45
    #34091346
Nikolay Kulikov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xmlAGG
Сформулируй более конкретно.
...
Рейтинг: 0 / 0
01.11.2006, 12:37
    #34097046
risfek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xmlAGG
попробую.
есть табличка
автомобиль, неисправность, способ устранения
нужно представить этоу таблицу в xml виде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<автомобиль>
	<неисправность>
		<способ/>
		<способ/>
	</неисправность>
	<неисправность>
		<способ/>
		<способ/>
	</неисправность>
</автомобиль>
<автомобиль>
	<неисправность>
		<способ/>
		<способ/>
	</неисправность>
	<неисправность>
		<способ/>
		<способ/>
	</неисправность>
</автомобиль>
для случая
Код: plaintext
1.
2.
3.
4.
<автомобиль>
	<неисправность/>
	<неисправность/>
</автомобиль>
можно попользовать xmlAGG, а вот как 3 уровня
...
Рейтинг: 0 / 0
01.11.2006, 13:04
    #34097192
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xmlAGG
Может, так:
Код: plaintext
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.
41.
WITH t (x1,x2,x3) AS (VALUES ( 1 , 1 , 1 ),( 1 , 2 , 2 ),( 1 , 3 , 3 ))
, a as
(
SELECT x1, x2
, XMLELEMENT
 (
     NAME "L2"
   , XMLELEMENT(NAME "X2", x2)
   , XMLAGG
   (
    XMLELEMENT 
    (
      NAME "L3"
    , XMLELEMENT(NAME "X3", x3)
    )
   )
 ) x3
FROM t  
GROUP BY x1, x2
)
, b as
(
SELECT x1
, XMLELEMENT
 (
     NAME "L1"
   , XMLELEMENT(NAME "X1", x1)
   , XMLAGG(x3)
 ) x2
FROM a  
GROUP BY x1
)
SELECT
XMLSERIALIZE
(
 CONTENT 
 (
   XMLAGG(x2)
 ) as clob( 512 )
) x2
FROM b;
?
...
Рейтинг: 0 / 0
02.11.2006, 03:59
    #34099374
risfek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xmlAGG
Mark Barinstein? спасибо! так и нужно.
можно уточнить?
XMLELEMENT
возвращаемый в "b" как x3
при длинных строках корректно отработает?

т.е. это ELEMENT а не строка.
...
Рейтинг: 0 / 0
02.11.2006, 10:50
    #34099897
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xmlAGG
Поищите в здесь по подстроке xml-function
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / xmlAGG / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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