STUFF函数应用

159 阅读1分钟

STUFF()先删除后插入

--在 'abcdef'中删除从第 2 个位置(字符 b)开始的3个字符,
--然后在删除的起始位置插入'插入的',创建并返回一个字符串。
SELECT STUFF('abcdef'23'插入的');

image.png

image.png

--字段前拼接,然后用stuff()函数去掉第一个,插入''
select stuff((select ',' + 姓名 from 学生表 for xml path('')),1,1,'')

image.png

image.png

还是出错

SELECT * FROM 成绩
PIVOT(
MAX(分数)
FOR 课程 IN (SELECT STUFF((SELECT DISTINCT ','+课程 FROM 成绩 FOR XML PATH('')), 11''))
) as t;

image.png

附建表语句

--创建表\
CREATE TABLE 成绩(
姓名 NVARCHAR(128),
课程 NVARCHAR(128),
分数 INT
);

--插入值
INSERT INTO 成绩 VALUES('刘五''语文'74);
INSERT INTO 成绩 VALUES('刘五''数学'83);
INSERT INTO 成绩 VALUES('刘五''物理'63);
INSERT INTO 成绩 VALUES('李四''语文'74);
INSERT INTO 成绩 VALUES('李四''数学'84);
INSERT INTO 成绩 VALUES('李四''物理'94);