STUFF
删除指定长度的字符并在指定的起始点插入另一组字符。
语法
STUFF ( character_expression , start , length , character_expression )
参数
character_expression
由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。
start
是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。
length
是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。
返回类型
如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。
注释
可以嵌套字符串函数。
示例
下例通过在第一个字符串 (abcdef) 中删除从第二个位置(字符 b)开始的三个字符,然后在删除的起始位置插入第二个字符串,创建并返回一个字符串。
SELECT STUFF(‘abcdef’, 2, 3, ‘ijklmn’)
GO
SQL示例
SELECT
t.F_ProcessCode,
mpm.F_ProcessName F_ProcessNamempm,
mpc.F_ItemId,
mpc.F_PinType,
mpc.F_QualityNum as F_QualityNumCom,
mpc.F_ImperfectionNum,
mpc.F_ItemName,
t.F_QualityUserName,
t.F_QualityCheckResult,
mpcu.F_UserName
FROM MES_OrderProcess t
left join MES_ProcessMaintenance mpm on t.F_ProcessId = mpm.F_Id
left join MES_ProcessComplete mpc on t.F_Id = mpc.F_OrderProcessId
left join (select F_ProcessCompleteId, [F_UserName]=stuff((select ','+[F_UserName] from MES_ProcessCompleteUser t where F_ProcessCompleteId=MES_ProcessCompleteUser.F_ProcessCompleteId for xml path('')), 1, 1, '')
from MES_ProcessCompleteUser
group by F_ProcessCompleteId ) mpcu on mpc.F_id = mpcu.F_ProcessCompleteId
left join MES_OrderStartLog mosl on t.F_OrderStartLogId = mosl.F_Id
WHERE t.F_DocStatus = '已完工' and t.F_OrderStartLogId = @keyValue
查询结果
今天的文章STUFF用法分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/63706.html