SQL SERVER FOR xml PATH( )用法

网友提问最佳回答:

1、查询数据

-- 查询邮件接收人和抄送人
SELECT DISTINCT USER_ID,CC_USER_ID FROM MAIL_LOAD WHERE MAIL_TYPE = 'PM_MAIL';

查询结果如图:

2、用 FOR xml PATH()

-- 把多行数据转成一行数据
SELECT DISTINCT
    STUFF ( (SELECT ';'+USER_ID FROM MAIL_LOAD a WHERE MAIL_TYPE = 'PM_MAIL' FOR xml PATH ( '' ) ), 1, 1, '' ) USERTO,
    STUFF ( ( SELECT ';'+CC_USER_ID FROM MAIL_LOAD a WHERE MAIL_TYPE = 'PM_MAIL' FOR xml PATH ( '' ) ), 1, 1, '' ) USERCC

查询结果如图:

3、STUFF函数

在 SQL Server 中,stuff() 函数用于从源字符串中删除给定长度的字符序列,并从指定的起始索引插入给定的字符序列。

STUFF (source_string, start, length, change_string)

 source_string:字符数据

 start :指定删除和插入的开始位置

 length :指定要删除的字符数

 change_string : 替换start 到 length的字符数据

获赞数:166

收藏数:34

回答时间:2023-04-07 17:39:07