SQL45 对过长的昵称截取处理
题目主要信息:
- 输出字符数大于10的用户名信息,对于字符数大于13的用户输出前10个字符然后加上三个点号:『...』
问题拆分:
- 首先从user_info表中筛选出nick_name长度大于10的用户。知识点:where、char_length()
- 利用if语句判断筛选出的用户名信息长度是否大于13,对于大于13的截断前10位,后加 ='...'输出,否则正常输出。知识点:if、char_length()、concat、substr
代码:
select uid,
if(char_length(nick_name) > 13, concat(substr(nick_name, 1, 10), '...'), nick_name) as nick_name
from user_info
where char_length(nick_name) > 10