表: Users
+----------------+---------+ | Column Name | Type | +----------------+---------+ | user_id | int | | name | varchar | +----------------+---------+ 在 SQL 中,user_id 是该表的主键。 该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。
修复名字,使得只有第一个字符是大写的,其余都是小写的。
返回按 user_id
排序的结果表。
返回结果格式示例如下。
示例 1:
输入: Users table: +---------+-------+ | user_id | name | +---------+-------+ | 1 | aLice | | 2 | bOB | +---------+-------+ 输出: +---------+-------+ | user_id | name | +---------+-------+ | 1 | Alice | | 2 | Bob | +---------+-------+
解题思路
考察的是SQL中相关字符串函数
代码
# Write your MySQL query statement below
# 一、计算字段
# 其实本题主要考察的就是计算字段的使用。
# 二、知识点
# 2.1 CONCAT() 函数
# CONCAT 可以将多个字符串拼接在一起。
# 2.2 LEFT(str, length) 函数
# 从左开始截取字符串,length 是截取的长度。
# 2.3 UPPER(str) 与 LOWER(str)
# UPPER(str) 将字符串中所有字符转为大写
# LOWER(str) 将字符串中所有字符转为小写
# 2.4 SUBSTRING(str, begin, end)
# 截取字符串,end 不写默认为空。
# SUBSTRING(name, 2) 从第二个截取到末尾,注意并不是下标,就是第二个。
# CONCAT 用来拼接字符串 ● LEFT 从左边截取字符 ● RIGHT 从右边截取字符 ● UPPER 变为大写 ● LOWER 变为小写 ● LENGTH 获取字符串长度
# select user_id, CONCAT(UPPER(left(name, 1)), LOWER(SUBSTRING(name, 2))) as name
select user_id, CONCAT(UPPER(left(name, 1)), LOWER(RIGHT(name, length(name) - 1))) as name
from Users
order by user_id
考察字符串函数的用法:
CONCAT(str1, str2) :
拼接字符串UPPER(str) :
字符串变成大写LOWER(str) :
字符串变成小写LENGTH(str) :
获取字符串的长度LEFT(str,len) :
获取字符串左边 len 个字符RIGHT(str,len) :
获取字符串右边 len 个字符SUBSTR(str,start,len) :
获取 str 中从 start 开始的 len 个字符