文章目录
- 力扣高频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 函数来实现这一目标。