一、SQL51
查找字符串’10,A,B’ 中逗号’,'出现的次数cnt。
(1) 将逗号替换成空字符串,空字符串不计长度
(2)使用替换之前的减去替换之后的长度-----> 逗号出现的次数
SELECT length('10,A,B')-length(replace('10,A,B',',',''))
二、SQL53 分组用逗号连接
按照dept_no进行汇总,属于同一个部门的emp_no按照逗号进行连接,结果给出dept_no以及连接出的结果
将一个分组中的指定列值使用指定分隔符进行连接,需要使用聚合函数group_concat(X,split)
,X表示需要连接的列名,split表示连接的分隔符,默认为逗号
SELECT dept_no,GROUP_CONCAT(emp_no SEPARATOR ',')
FROM dept_emp
GROUP BY dept_no
三. SQL54 last_name和first_name引号连接
SELECT concat(RTrim(last_name),'\'',LTrim(first_name))
FROM employees
group by emp_no
将employees表中的所有员工的last_name和first_name通过(’)连接起来。
建议这里的last_name,first_name采用去左、去右空格的函数R(L)Trim(),防止联结时部分字段存在空格导致结果出错。
补充:
RTrim():去除字符串右端空格
LTrim():去除字符串左端空格
Trim():去除字符串两端的空格
concat(RTrim(last_name),'\'',LTrim(first_name)):连接字符串