2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > sqlserver 之STUFF的运用

sqlserver 之STUFF的运用

时间:2022-02-06 12:21:59

相关推荐

sqlserver 之STUFF的运用

首次写博客,与大家共勉。如果我的内容有错误或者不严谨的地方,欢迎大家提出。

我对SQLserver 中STUFF函数的理解是在sql server中将字符串中的第一个字符串某一部分字符替换成另外一部分,组成新的字符串数据。

STUFF(character_expression,Start,Length,character_expression)

参数说明:

character_expression:字符串数据,或字符串组成的表达式。

Start:开始替换的位置,start 必须大于0,否则返回NULL.

Length,替换长度.若长度为0,则是拼接,不删除任何原字符串中的内容

character_expression:具体替换的内容,若为空的话,就是删除第一个字符串中的指定位置指定长度的数据。

如:

SELECT STUFF('123',1,0,'0')

则返回字符串"0123"

SELECT STUFF('123',1,2,'0')

则返回字符串"03"

SELECT STUFF('1234',2,2,'78')

则返回字符串"1784"

SELECT STUFF((SELECT '|'+DAID+','+DAName FROM TDesignAlter for xml path('')),1,1,'')

将每一行DAID和DAName用逗号连接起来,行与行之间用‘|’隔开,且去掉第一个字符串前面的‘|’

返回结果:000775B3-D035-4D59-8782-4DC4C3EE90F9,“中心项目”的设计变更14|004F92D8-FA39-4F77-80D5-D7169802F5BE,“中心项目”的设计变更1|006250CD-52DD-42C3-AB56-A1B56432B12C,“中心项目”的设计变JB-09|00AB74F1-BA91-4FB2-9EBC-D3521E4EFBDE,“中心项目”的设计变更2|00C45BCF-05BC-4376-AADE-AC2D12D2D032,“中心项目”T3-06

其中for xml path是将返回的结果拼成一行以xml格式展现,for xml path('节点名称'),默认row

STUFF 想要多条数据拼成一行需要配合for xml path('')

亲测有效,环境win10,sqlserver

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。