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

我对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 2012

sqlserver 之STUFF的运用相关推荐

  1. Mysql,SqlServer,Oracle主键自动增长的设置

    Mysql,SqlServer,Oracle主键自动增长的设置 参考文献 http://blog.csdn.net/andyelvis/article/details/2446865 1.把主键定义为 ...

  2. oracle手工启动,SQLSERVER服务手工启动 批处理文件

    不比2000有个 开关的程序 所以上网找了下教程 自己写个批处理 自动启动服务 哇哈哈 突然觉得 只要有网络 语言不是啥大的障碍 写起来都差不多呀 哇哈哈 话说最近又加了个ORACLE的服务 依然偷懒 ...

  3. SQLServer 系统表

    SQLServer 系统表 http://blog.163.com/zangyunling@126/blog/static/1646245052010101641620415/ http://www. ...

  4. mysql和sqlserver共存_mysql 和sqlserver的 多行合并成一行

    mysql 和sqlserver的 多行合并成一行 mysql  多行合并: mysql 内置函数 group_concat(exper  SEPARATOR " " ) expe ...

  5. sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?

    很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...

  6. 看懂SqlServer查询计划(转)

    转自:http://www.cnblogs.com/fish-li/archive/2011/06/06/2073626.html 对于SqlServer的优化来说,可能优化查询是很常见的事情.关于数 ...

  7. sqlserver导入excel的电话号码(身份证)变为科学计数解决方式

    如果excel中有一列存的是手机号码或者身份证号码,那么导入到sql中时,会把手机或者身份证当作数字格式对待,因而会以科学记数法的形式存在sqlserver表中,解决方式,先将excel文件另存为文本 ...

  8. 通过sqlserver日志恢复误删除的数据

    通过sqlserver日志恢复误删除的数据 原文:通过sqlserver日志恢复误删除的数据 如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题 ...

  9. 在SQLserver数据库里设置作业的步骤

    在SQLserver数据库里设置作业(对数据库的表定期进行数据清理)的步骤 1.首先,要打开sql server代理的服务,在我的电脑,右键管理的服务打开,SQL Server 代理 (MSSQLSE ...

  10. 获取SQLServer数据库中所有表

    对于获取SQLSERVER数据库中所有表,首先第一步引有SQLDMO.dll 找到文件路径: C:\Program   Files\Microsoft   SQL   Server\80\Tools\ ...

最新文章

  1. DOCTYPE声明的几种类型
  2. php 对象存储过程,从php中的存储过程中获取价值
  3. 二分图最小覆盖的Konig定理及其证明
  4. 亲测有用的markdown博客生成器
  5. 1.2 Name That Number
  6. IntentService使用
  7. Jmeter JDBC请求-----数据库读取数据进行参数化 通过SSH跳板机连接数据库
  8. MySQL中innodb_page_cleaners详解
  9. Python练习之 对文件进行创建,然后重命名文件最近进行文件删除
  10. android.os.log,android.os.Handler和java.util.logging.Handler之间的区别?
  11. 面试官最爱的 volatile 关键字,这些问题你都搞懂了没?
  12. learning rate 学习速率
  13. ext3,ext4,xfs和btrfs文件系统性能对比
  14. java 异常补偿解决_在java 的异常处理模型中,无论是否发生异常,(  )块中的代码都会被执行。...
  15. ledshowtw2013(LED图文编辑软件)v13.10.8.1
  16. 案例实践:零基础完成Loadrunner压力测试,十分钟教会你
  17. laypage ajax,laypage前端分页插件实现ajax异步分页
  18. Axure RP 介绍
  19. Material Desion之Shape与shadow原理实现
  20. RC电路一阶线性微分方程

热门文章

  1. SBI集团向“Smart Card”钱包制造商投资1500万美元
  2. 老铁,这年头不会点Git真不行!!!
  3. Java之父求职被嫌年纪大:程序员只能吃青春饭?
  4. quill Cannot import ImageResize. Are you sure it was registered?
  5. java多线程 wait和notify方法
  6. BZOJ1005 [HNOI2008]明明的烦恼
  7. Poly-encoders: architectures and pre-trainingstrategies for fast and accurate multi-sentence scorin
  8. 双一流大学计算机专业月薪拿2000?网友:我裂开
  9. 语义分析(semantic analysis)概述
  10. LCD液晶屏接口和显示器接口介绍