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

第一种:《两张表》(年级课程两张表互相通过GradeID进行关联的)

select distinct(g.GradeID),g.GradeName,g.GradeNumber,

(SELECT STUFF(( SELECT ',' +convert(VARCHAR, ClassName) FROM Class c where c.GradeID = g.GradeID FOR XML PATH('')), 1, 1, '') AS UserName) as ClassName
FROM Grade g left join Class c on g.GradeID = c.GradeID;

效果展示:

第二种:《三张表》(年级课程和年级课程绑定表)

效果展示:

 第三种:《共五张表》年级课程两张表互相通过GradeID进行关联的-------年级表与课程表通过应该年级课程绑定表进行关联的

select ROW_NUMBER() over(order by a.GradeID asc) as xh,
a.GradeID,a.GradeName,a.GradeNumber,
(select STUFF(( SELECT ',' + CourseTitle FROM Curriculum b1 inner join GradeCurriculumBinding b2 on b1.CurriculumID = b2.CurriculumID where b2.GradeID = a.GradeID FOR XML PATH('')), 1, 1, '')) as CourseTitle,
(SELECT STUFF(( SELECT ',' +convert(VARCHAR, ClassName) FROM Class c1 where c1.GradeID = a.GradeID FOR XML PATH('')), 1, 1, ''))as ClassName
from Grade a order by a.GradeID;

效果展示:

SQL server数据库拼接语句(STUFF)用法的更多相关文章

  1. SQL server 数据库基础语句 子查询 基础函数

    上一章 说了下   子查询的意义是 把一条查询语句当做值来使用 select *from car   //查询汽车的信息 假设我知道一个汽车的编号是 c021 但是我要查询 比这个汽车价格高的汽车信息 ...

  2. SQL server 数据库基础语句

    上篇介绍的是鼠标操作 遗漏两个知识: 主外键 两个列 数据类型 必须一致    //int类型不能约束nvarchar 类型      varchar类型不能约束nvarchar类型 varchar( ...

  3. sql server数据库中 INFORMATION_SCHEMA的用法

    1.查询数据库的所有表: select * from INFORMATION_SCHEMA.TABLES 2.查询表名为xxx的所有列的信息 select * from INFORMATION_SCH ...

  4. 2017-3-10 SQL server 数据库 T--SQL语句

    创建数据库:create datebase  数据库名     注:数据库名不能为中文,不能数字开头,不能符号开头. 删除数据库:drop datebase 数据库名 创建表:create   tab ...

  5. SQL server 数据库基础语句 查询语句

    这一章要学习查询语句 我看car这一数据 我们就开始打上 select  *from car 条件修改 update 表名 set 列名1=值1 where 列名2=值2   //当列名2=值2时   ...

  6. SQL Server 数据库备份语句

    ); --文件名 DECLARE @date DATETIME; --日期 ); --文件存放路径 SELECT @date = GETDATE(); --获取当前时间 --根据当前时间自动生成文件名 ...

  7. SQL Server数据库性能优化之SQL语句篇【转】

    SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...

  8. 【转】sql server数据库操作大全——常用语句/技巧集锦/经典语句

    本文为累计整理,有点乱,凑合着看吧! ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ☆ ☆ ☆ sql 宝 典 ☆ ☆ ☆ 2012年-8月 修订版 ☆ ...

  9. SQL SERVER 数据库备份的三种策略及语句

    1.全量数据备份    备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋 ...

  10. SQL SERVER数据库状态(脱机,联机,可疑)及SQL设置语句详解

      首先我们应该知道数据库总是处于一个特定的状态中,下面先来了解一下数据库的常见的三种状态:1,脱机:我们可以在Microsoft SQL Server Management中看到该数据库,但该数据库 ...

随机推荐

  1. AcWing 66. 两个链表的第一个公共结点 (2012算法题)

    题目: 输入两个链表,找出它们的第一个公共结点. 当不存在公共节点时,返回空节点. 数据范围 链表长度 [1,2000]. 保证两个链表不完全相同,即两链表的头结点不相同. 样例  给出两个链表如下所 ...

  2. 鸣人的影分身【按照前i个数,最小数是不是0,建立转移方程】

    鸣人的影分身 题意 鸣人最多有n个分身,m的能量.分身的能量可以为0. 问有多少种方案数. 思路 很容易定义状态:f[i] [j]: 前i个分身,共花费能量j的方案数. 状态转移:刚开始想的枚举第i个 ...

  3. jenkins新建用户,设置权限

    jenkins新建用户,设置权限 一.新建用户 1.1 登录jenkins,点开 manage Jenkins 1.2进入Manage Users 1.3 新建用户 1.4填入新建用户信息 1.5用户 ...

  4. 10、jmeter的 Http的请求默认值

    在我们测试过程当中,有很多HTTP协议的请求 这些请求 有很多比如说网址(url)都是相同的 端口也是相同的,路径可能也是相同的 这个时候就需要用到请求默认值,后续直接用就可以  不需要再去配置 后续 ...

  5. C++ STL的简单应用(vector容器专题)

    #include <iostream> #include <string> #include <stdlib.h> #include <vector> ...

  6. CH573 CH582 OTA例程讲解(使用固定库+扩大APP空间)

    例程中提供的两种OTA就不过多介绍了,在BLE目录下有一个PDF专门讲解:WCH蓝牙空中升级(BLE OTA) 方式一是带库升级,整个codeflash分成四个区域,Jump IAP,APP,OTA, ...

  7. class3

    #include<stdio.h> #include<stdlib.h> #include<time.h> #include<windows.h> #d ...

  8. unidbgrid显示图片

    column设置imageoptions属性,visible=true,设置width

  9. Identityserver4 ClientCredentials授权

    转自:https://www.cnblogs.com/hyqq/p/14138024.html:侵删. Client Credentials 客户端应用不代表用户,客户端应用本身就相当于资源所有者 通 ...

  10. 【Apifox Helper】自动生成接口文档,IDEA+Apifox懒人必备

    @ 目录 前言 缘由 接口文档对接爽,整理起来真费脑 ⏲️本文阅读时长 约10分钟 前置条件 1. IDEA开发工具 2. Apifox(不必要) 主要目标 一秒生成接口文档 水图 IDEA中项目接结 ...