ca9*_*3d9 0 xml sql-server xquery sql-server-2008
我有以下SQL
with X(x) as (select 'a' union select 'b' )
, Y(y) as (select 1 union select 2 union select 3)
select x, y from X cross join Y
for xml path('')
Run Code Online (Sandbox Code Playgroud)
然后它回来了
<x>a</x>
<y>1</y>
<x>a</x>
<y>2</y>
<x>a</x>
<y>3</y>
<x>b</x>
<y>1</y>
<x>b</x>
<y>2</y>
<x>b</x>
<y>3</y>
Run Code Online (Sandbox Code Playgroud)
是否有可能使它返回
<a><y>1</y><y>2</y><y>3</y></a>
<b><y>1</y><y>2</y><y>3</y></b>
Run Code Online (Sandbox Code Playgroud)
要么
<x v="a"><y>1</y><y>2</y><y>3</y></x>
<x v="b"><y>1</y><y>2</y><y>3</y></x>
Run Code Online (Sandbox Code Playgroud)
或者也许我应该使用xquery FLWOR进行排列?
如果你使用这个:
WITH X(x) AS (SELECT 'a' UNION SELECT 'b' )
, Y(y) AS (SELECT 1 UNION SELECT 2 UNION SELECT 3)
SELECT
x AS "@v",
(SELECT y FROM Y
FOR XML PATH(''), TYPE)
FROM X
FOR XML PATH('X')
Run Code Online (Sandbox Code Playgroud)
你应该得到一个输出:
<X v="a">
<y>1</y>
<y>2</y>
<y>3</y>
</X>
<X v="b">
<y>1</y>
<y>2</y>
<y>3</y>
</X>
Run Code Online (Sandbox Code Playgroud)
我不知道如何a在XML输出(<a>......</a>)中使用column()的值作为XML标记.
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |