Leecode-SQL 1667. 修复表中的名字

在这里插入图片描述
解读一下这个题目
说是修改,实际上不是update操作,有一个select语句配合函数就可以解决
对name字段的第一个字母大写,其余小写

select user_id,concat(upper(left(name,1)),lower(right(name,length(name)-1))) as name 
from Users
order by user_id

看着挺复杂是吧,一个套一个的,主要聚焦在select后面跟随的部分
主要是这块,通过这个函数就可以完成对name字段的操作

concat(upper(left(name,1)),lower(right(name,length(name)-1)))

● CONCAT 用来拼接字符串 ,如果没有这个,字符串就无法拼接,升完大小写就变一个了,可以完成多个字段的拼接

CONCAT (字段1,字段2,字段3,..........)

● LEFT 从左边截取字符 ,从左往右截取。left(col_name, length) 函数:col_name是列名(必选),length是从左往右截取的长度(为正整数,如果为负数则什么也没返回,下标从1开始,不是0)

left(字段名, 要截取的长度)   

● RIGHT 从右边截取字符,参考LEFT函数,right(col_name, length) 函数: 从右往左截取。col_name是列名(必选),length是从右往左截取的长度(必须 为正整数,如果为负数则什么也没返回 下标从1开始,不是0)

right(字段名, 要截取的长度)   

● UPPER 变为大写 MySQL 中字母大写转换函数 UPPER(str) 可以将字符串 str 中的字母字符全部转换成大写。无论之前字段里有几个大写,全部一次性变成大写

● LOWER 变为小写 和上面的upper一样,无论里面是什么一律变成小写

● LENGTH 获取字符串长度 Length(字符串) 自动返回字符串长度

再回来看看这个SQL

concat(upper(left(name,1)),lower(right(name,length(name)-1)))

翻译一下

拼接两个字符串(变大写(从最左边开始截取(name字段,截取一个)),变小写(从最右边开始截取(name字段,name字段的长度-1))

补充一个函数
● substring(str,index,len) 截取str,从index开始,截取len长度

● substring_index(str,delim,count),str是要截取的字符串,delim是截取的字段count是从哪里开始截取(为0则是左边第0个开始,1位左边开始第一个选取左边的,-1从右边第一个开始选取右边的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值