SQL速查

列转行

select 
teacher_name,
GROUP_CONCAT(student_name) students
from student
group by teacher_name

student表:

teacher_namestudent_name
黄老师小明
黄老师小红
红老师小黑

结果:

teacher_namestudents
黄老师小明,小红
红老师小黑

获取子字符串

-- 获取前2个字符(黄老师 -> 黄老)
select SUBSTRING(student_name,1,2) 
from student;

-- 获取第2个字符开始,后面的子字符串(黄老师 -> 老师)
select SUBSTRING(student_name,2) 
from student;

-- 获取倒数2个字符串(我是黄老师 -> 老师)
select SUBSTRING(student_name,-2) 
from student;

字符串拼接

-- 用CONCAT函数。支持多个入参
select
CONCAT('A','B',student_name,'HAHAHA')
from student;

DISTINCT 的用法

加在SELECT之后,比如:

select distinct name,age from person;

用于对查出来的行进行去重。

也可以用于group by的语句:

select student_name,count(distinct subject) 
from course group by student_name;
Last Updated:
Contributors: dongyz8