SQL: STUFF()和FOR XML PATH的使用

news/2024/11/8 22:59:18/

STUFF(param1, startIndex, length, param2)
将param1中自startIndex(SQL中都是从1开始,而非0)起,删除length个字符,然后用param2替换删掉的字符。

示例:

select STUFF('abcdefg',1,0,'1234')       --结果为'1234abcdefg'  
select STUFF('abcdefg',1,1,'1234')       --结果为'1234bcdefg'

for xml path         将查询结果集以XML形式展现

示例:

假设有个表存放着学生的选课情况(stu_courses): 

 

select stu_name,stu_course from stu_courses for xml path;

<row>
<stu_name>张三</stu_name>
<stu_course>语文</stu_course>
</row>
<row>
<stu_name>张三</stu_name>
<stu_course>数学</stu_course>
</row>
<row>
<stu_name>张三</stu_name>
<stu_course>英语</stu_course>
</row>
<row>
<stu_name>李四</stu_name>
<stu_course>数学</stu_course>
</row>
<row>
<stu_name>李四</stu_name>
<stu_course>语文</stu_course>
</row>

for xml path('');         去掉每一行的<row></row>

示例:

select  stu_course from stu_courses for xml path;

<row>语文</row>
<row>数学</row>
<row>英语</row>

select  ,stu_course from stu_courses for xml path;

<row>,语文</row>
<row>,数学</row>
<row>,英语</row>

select  ,stu_course from stu_courses for xml path('');

,语文,数学,英语

stuff与for xml path('')联合使用 

select stuff(( select  ,stu_course from stu_courses for xml path('')),1,1,'');

加stuff是为了去掉第一个逗号

语文,数学,英语

 示例:将一个表的一个列的多行内容拼接成一行

结合group by

select stu_name,stuff(( select  ,stu_course from stu_courses for xml path('')),1,1,'') from stu_courses group by stu_name;

张三     语文,数学,英语
李四     语文,数学

http://www.ppmy.cn/news/73929.html

相关文章

医疗科普系统和微信小程序开箱即用

一.下载地址 http://www.gxcode.top/code 二.项目说明 运行环境&#xff1a;jdk8tomcat8mysql5.7IntelliJ IDEAmaven微信开发工具 这是一个ssmvue微信小程序的医疗科普小程序&#xff0c;分为pc端和微信小程序端&#xff0c; pc端包括&#xff1a;管理员角色和学生角色。 管…

两台电脑之间怎么互相传文件?

​随着技术的发展&#xff0c;我们似乎可以从家中或工作电脑远程访问另一台电脑。同时&#xff0c;一些用户也在想&#xff0c;“我能不能把文件从一台电脑远程传输到另一台电脑&#xff0c;这样我就可以在本地电脑上随心所欲地查看和编辑文件了”。 这个问题的答案是…

《LKD3粗读笔记》(14)块I/O层

什么是块设备&#xff1f; 系统中能够随机访问固定大小数据片的设备被称为块设备&#xff0c;这些数据片称作块&#xff0c;最常见的块设备是硬盘。什么是字符设备&#xff1f; 字符设备按照字符流的方法被有序访问&#xff0c;像串口和键盘就都属于字符设备。这两种设备的区别…

modscan模拟数据,nodred通过modbus协议向emqx创建规则引擎写入TDengine库

nodred通过modbus协议向emqx创建规则引擎写入TDengine库过程 一、emqx存储数据到TDEngine数据库1.1 进入emqx界面1.2 新建资源1.3 新建规则引擎1.4 测试 二、modscan模拟设备数据三、在Node-RED上模拟Modbus通讯3.1 nodeRed环境搭建3.2 nodeRed使用3.3 nodered读取modbus发送的…

在Java 如何使用反射?

在Java中&#xff0c;可以使用反射机制来获取类的信息、创建对象、调用方法和访问/修改字段。下面是使用反射的一些常见示例&#xff1a; 获取Class对象&#xff1a; 通过类名获取Class对象&#xff1a;使用Class.forName("类名")方法可以根据类的全限定名获取对应的…

前端入门计划表

基础知识 阶段一&#xff1a;HTML和CSS HTML 的基础语法和常用标签&#xff08;如 div、span、p、h1~h6、ul、ol、li、a、img 等&#xff09;CSS 的基础语法和常用属性&#xff08;如 font-size、color、background、margin、padding、float、position、display 等&#xff0…

ATA-2000系列高压放大器在压电陶瓷中的典型应用

ATA-2000系列高压放大器在压电陶瓷中的典型应用 压电陶瓷介绍&#xff1a; 压电陶瓷是一种能够将机械能和电能互相转换的陶瓷材料。压电陶瓷除具有压电性外&#xff0c;还具有介电性、弹性等,已被广泛应用于医学成像、声传感器、声换能器、超声马达等。压电陶瓷利用其材料在机…

超好玩C++控制台打飞机小游戏,附源码

我终于决定还是把这个放出来。 视频在这&#xff1a;https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg.html 具体信息主界面上都有写。 按空格暂停&#xff0c;建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss&#xff08;上面视频2分47秒&#xff09;。 挺好…