Chế độ PATH được sử dụng trong việc tạo XML từ truy vấn SELECT
1. SELECT
ID,
Name
FROM temp1
FOR XML PATH;
Ouput:
<row>
<ID>1</ID>
<Name>aaa</Name>
</row>
<row>
<ID>1</ID>
<Name>bbb</Name>
</row>
<row>
<ID>1</ID>
<Name>ccc</Name>
</row>
<row>
<ID>1</ID>
<Name>ddd</Name>
</row>
<row>
<ID>1</ID>
<Name>eee</Name>
</row>
Đầu ra là XML trung tâm phần tử trong đó mỗi giá trị cột trong hàng kết quả được gói trong một phần tử hàng. Vì mệnh đề SELECT không chỉ định bất kỳ bí danh nào cho tên cột, nên tên phần tử con được tạo giống với tên cột tương ứng trong mệnh đề SELECT.
Đối với mỗi hàng trong hàng, một thẻ được thêm vào.
2.
SELECT
ID,
Name
FROM temp1
FOR XML PATH('');
Ouput:
<ID>1</ID>
<Name>aaa</Name>
<ID>1</ID>
<Name>bbb</Name>
<ID>1</ID>
<Name>ccc</Name>
<ID>1</ID>
<Name>ddd</Name>
<ID>1</ID>
<Name>eee</Name>
Đối với Bước 2: Nếu bạn chỉ định chuỗi có độ dài bằng không, phần tử gói không được tạo.
3.
SELECT
Name
FROM temp1
FOR XML PATH('');
Ouput:
<Name>aaa</Name>
<Name>bbb</Name>
<Name>ccc</Name>
<Name>ddd</Name>
<Name>eee</Name>
4. SELECT
',' +Name
FROM temp1
FOR XML PATH('')
Ouput:
,aaa,bbb,ccc,ddd,eee
Trong Bước 4, chúng tôi đang nối các giá trị.
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
Ở Bước 6, chúng tôi sẽ nhóm ngày theo ID.
STUFF (source_ chuỗi, bắt đầu, độ dài, add_ chuỗi) Tham số hoặc Đối số source_ chuỗi Chuỗi nguồn cần sửa đổi. start Vị trí trong source_ chuỗi để xóa các ký tự có độ dài và sau đó chèn add_ chuỗi. length Số lượng ký tự cần xóa từ source_ chuỗi. add_opes Chuỗi ký tự cần chèn vào source_ chuỗi tại vị trí bắt đầu.
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 |
-----------------------------------