Every day a leetcode
题目来源:1667. 修复表中的名字
问题描述
表: Users
+----------------+---------+
| Column Name | Type |
+----------------+---------+
| user_id | int |
| name | varchar |
+----------------+---------+
user_id 是该表的主键。
该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。
编写一个 SQL 查询来修复名字,使得只有第一个字符是大写的,其余都是小写的。
返回按 user_id 排序的结果表。
查询结果格式示例如下。
示例 1:
输入:
Users table:
+---------+-------+
| user_id | name |
+---------+-------+
| 1 | aLice |
| 2 | bOB |
+---------+-------+
输出:
+---------+-------+
| user_id | name |
+---------+-------+
| 1 | Alice |
| 2 | Bob |
+---------+-------+
SQL代码
代码1:
# Write your MySQL query statement below
# mysql 字符串函数各种复习
-- CONCAT(str1, str2):字符连接函数
-- UPPER(str):将字符串改为大写字母
-- LOWER(str):将字符串改为小写字母
-- LENGTH(str):判定字符串长度
-- SUBSTRING(str, a, b):提取字段中的一段,从字符串str的第a位开始提取,提取b个字符
-- LEFT(str, n):提取字符串最左边的n个字符
-- RIGHT(str, n):提取字符串最右边的n个字符
SELECT user_id,
CONCAT(UPPER(SUBSTRING(name,1,1)),LOWER(SUBSTRING(name,2))) AS name
FROM Users
ORDER BY user_id;
代码2:
# Write your MySQL query statement below
# mysql 字符串函数各种复习
-- CONCAT(str1, str2):字符连接函数
-- UPPER(str):将字符串改为大写字母
-- LOWER(str):将字符串改为小写字母
-- LENGTH(str):判定字符串长度
-- SUBSTRING(str, a, b):提取字段中的一段,从字符串str的第a位开始提取,提取b个字符
-- LEFT(str, n):提取字符串最左边的n个字符
-- RIGHT(str, n):提取字符串最右边的n个字符
SELECT user_id,
CONCAT(UPPER(LEFT(name,1)),LOWER(RIGHT(name,LENGTH(name)-1))) AS name
FROM Users
ORDER BY user_id;
结果

本文介绍了一种使用SQL查询来修复表中名字的方法,确保每个名字的首字母大写,其余字母小写。提供了两种不同的实现方式,并展示了如何通过LEFT和RIGHT函数或SUBSTRING函数来提取和转换字符串。
551

被折叠的 条评论
为什么被折叠?



