力扣高频SQL 50题(基础版)第二十六题之1667.修复表中的名字

力扣高频SQL 50题(基础版)第二十六题

1667.修复表中的名字

题目说明

表: Users

±---------------±--------+

| Column Name | Type |

±---------------±--------+

| user_id | int |

| name | varchar |

±---------------±--------+

user_id 是该表的主键(具有唯一值的列)。

该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。

编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。

返回按 user_id 排序的结果表。

实现过程

准备数据
Create table If Not Exists Users (user_id int, name varchar(40))
Truncate table Users
insert into Users (user_id, name) values ('1', 'aLice')
insert into Users (user_id, name) values ('2', 'bOB')
实现方式
select user_id,concat(upper(left(name,1)),lower(substr(name,2))) name from Users order by user_id;

concat(upper(left(name,1)),lower(substr(name,2))) name: 对name字段进行操作,首先使用left(name,1)获取name字段的第一个字符,然后使用upper函数将其转换为大写。接着,使用substr(name,2)第二个字符开始截取剩余部分,使用lower函数将其转换为小写。最后,使用concat函数将这两个部分拼接起来,形成一个新的name字段

结果截图

在这里插入图片描述

总结
目标是将“name”列中的每个字符串的首字母大写。
我们可以使用 CONCAT 、 UPPER 和 SUBSTRING 函数来实现这一目标。
符串的首字母大写。
我们可以使用 CONCAT 、 UPPER 和 SUBSTRING 函数来实现这一目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值