SQL内置函数STUFF()加REOLACE()代替循环

原创 2017年07月25日 16:36:10

数据库数据如下:

ID  Name   Age
1   张飞     283  
2   关羽     284  

假如我们的需求结果如下:

张飞的年龄是:283岁,关羽的年龄是:284岁

我们可用下面方法代替麻烦的循环操作:

STUFF(REPLACE(REPLACE((

//自己要实现的结果
SELECT 
CASE ISNULL(A.Name,'') 
     WHEN '' THEN ''
     ELSE A.Name+'的年龄是:'+ 
          CONVERT(NVARCHAR, ISNULL(A.Age,0))+'岁' 
END 
RESULT 
FROM Student A WHERE A.ID IN ('1','2')

//此处的A 和 RESULT字段要和上面sql语句中的A和RESULT保持一致
FOR XML AUTO), '<A RESULT="', ','), '"/>', ''), 1, 1, '')

呵呵,确实有些复杂,如有错误希望给予留言,灰常感谢!

版权声明:本文为博主原创文章,未经博主允许不得转载。

SQL SERVER使用STUFF函数拼接记录为逗号分隔符

stuff(select ',' + fieldname  from tablename for xml path('')),1,1,'') 这一整句的作用是将多行fieldname字段的内容串联起...
  • winnyrain
  • winnyrain
  • 2017年08月17日 11:02
  • 2704

Matlab编程学习:用内建函数代替for循环

在使用matlab进行矩阵计算的时候,经常会遇到要使用for循环的情况。但其实很多操作可以用内部的一些函数代替。今天总结一些几个函数的用法: bsxfun, arrayfun, cellfun, ...
  • huang1024rui
  • huang1024rui
  • 2016年01月20日 22:28
  • 949

sqlserver中 多条数据合并成一条数据 (stuff 与 for xml path 连用)

sqlserver中 多条数据合并成一条数据 (stuff 与 for xml path 连用) SQL Server 中的 STUFF 函数的使用: STUFF ( character_1 , st...
  • u011229848
  • u011229848
  • 2015年11月19日 16:57
  • 5667

SQL STUFF函数 同一列值拼接 拼接字符串

今日看到一篇文章,是关于和并列的,也研究了下,还是不错的     要这种效果。   create table tb(idint, value va...
  • dxh_0829
  • dxh_0829
  • 2012年07月25日 10:31
  • 1599

SQL中的Stuff()函数

SQL中的Stuff()函数 作者: soloist    发表日期: 2008-07-18 20:49   复制链接  也许由于最近心情不好,这两天也在工作和人较起了真,这可和咱平时与人为善,不穷追...
  • yygmx
  • yygmx
  • 2009年04月02日 13:37
  • 520

Oracle Stuff

删除旧实例,重新安装时报错:ORA-27121: unable to determine size of shared memory segment 迷糊的解决过程:重启Solaris, 清除$ORA...
  • wenbokobe
  • wenbokobe
  • 2010年06月07日 12:12
  • 1815

sql 多行转换为一行(STUFF及PIVOT的用法) ||SQL 合并列值和拆分列值

STUFF的用法 http://www.cnblogs.com/sammon/archive/2012/05/10/2494362.html 行转列:SQL SERVER PIVO...
  • TianGaojie123abc
  • TianGaojie123abc
  • 2013年09月25日 17:09
  • 7368

SQL Server 中利用STUFF和FOR XML PATH()实现多行数据的拼接

有时候我们可能有将查询的结果
  • biaobiao1217
  • biaobiao1217
  • 2014年11月14日 16:16
  • 1023

SQL Server中用While循环替代游标(Cursor)的解决方案

By行处理数据,推荐2种方式: 1、游标 2、While循环 我们来了解下这两种方案处理1w行数据分别需要多长时间。 一、游标。 首先我们填充一个表,用优雅的递归方式填充...
  • a5685263
  • a5685263
  • 2016年07月29日 17:36
  • 2993

SQL批量行转列已经多个字段拼接

第二步:运行一下SQL,就可以得出以下拼接(合并)效果。关键点是where jobId=V_WIP_Balance.jobId   。你想要第一个显示什么,这个ID就要在视图中查出来,不然会数据有误,...
  • lirongjiancnvto
  • lirongjiancnvto
  • 2017年04月24日 08:30
  • 459
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL内置函数STUFF()加REOLACE()代替循环
举报原因:
原因补充:

(最多只允许输入30个字)