直接上干货:

– 建表操作:

-- 建表
CREATE table 成绩表1(
学号 VARCHAR(10),
科目 VARCHAR(10),
成绩 INTEGER
)

– 插入数据:

INSERT into `成绩表` values -- 插入数据
('001','计算机',99),
('003','数学',99),
('001','数学',99),
('001','化学',88),
('002','英语',96),
('003','语文',76);

SELECT * from 成绩表; -- 预览数据

cancat用法

# cancat用法:
SELECT CONCAT(`学号`,'-',科目,',',成绩) as tempt from `成绩表`;

# cancat用法:
SELECT CONCAT(`学号`,'-','科目',',',`成绩`) as tempt from `成绩表`;

CONCAT_WS用法

# CONCAT_WS用法:
SELECT CONCAT_WS(',',`学号`,`科目`,NULL,`成绩`) as temp FROM `成绩表`;

GROUP_CONCAT() 用法

# GROUP_CONCAT() 用法:

-- 1.单列多行合并单行单列展示

SELECT `学号`,GROUP_CONCAT(`科目`) as q ,GROUP_CONCAT(`成绩`ORDER BY `成绩` desc) p from `成绩表` group by `学号`;

-- 2.多列拼接,多列多行值合并成单行单列显示
SELECT GROUP_CONCAT(`学号`,`科目`) as groupby from `成绩表`;

SELECT   `学号`
		,GROUP_CONCAT(`科目`,`成绩`) as temt  
from `成绩表` group by `学号`;

说明:测试工具mysql

1.concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL
2.concat_ws函数在连接字符串的时候,只要有一个字符串不是NULL,就不会返回NULL。concat_ws函数需要指定分隔符。

本文地址:https://blog.csdn.net/weixin_44976611/article/details/107316531