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