路径模式用于从SELECT查询生成XML。
1. SELECT
ID,
Name
FROM temp1
FOR XML PATH;
Ouput:
1
aaa
1
bbb
1
ccc
1
ddd
1
eee
输出是以元素为中心的XML,其中结果行集中的每个列值都封装在一个ROW元素中。由于SELECT子句没有为列名指定任何别名,因此生成的子元素名称与SELECT子句中相应的列名相同。
对于行集中的每一行,都会添加一个标记。
2.
SELECT
ID,
Name
FROM temp1
FOR XML PATH('');
Ouput:
1
aaa
1
bbb
1
ccc
1
ddd
1
eee
对于步骤2:如果指定零长度字符串,则不会产生包装元素。
3.
SELECT
Name
FROM temp1
FOR XML PATH('');
Ouput:
aaa
bbb
ccc
ddd
eee
4. SELECT
',' +Name
FROM temp1
FOR XML PATH('')
Ouput:
,aaa,bbb,ccc,ddd,eee
在步骤4中,我们将这些值连接起来。
5. SELECT ID,
abc = (SELECT
',' +Name
FROM temp1
FOR XML PATH('') )
FROM temp1
Ouput:
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
1 ,aaa,bbb,ccc,ddd,eee
6. SELECT ID,
abc = (SELECT
',' +Name
FROM temp1
FOR XML PATH('') )
FROM temp1 GROUP by iD
Ouput:
ID abc
1 ,aaa,bbb,ccc,ddd,eee
在步骤6中,我们将日期按ID分组。
资料(源_字符串,开始,长度,添加_字符串)参数或参数源_String源字符串要修改的源字符串。启动Source_String中的位置以删除长度字符,然后插入Add_String。从source_string中删除的字符数。将要插入的字符序列添加到源_string中的起始位置。
SELECT ID,
abc =
STUFF (
(SELECT
',' +Name
FROM temp1
FOR XML PATH('')), 1, 1, ''
)
FROM temp1 GROUP by iD
Output:
-----------------------------------
| Id | Name |
|---------------------------------|
| 1 | aaa,bbb,ccc,ddd,eee |
-----------------------------------