-
Notifications
You must be signed in to change notification settings - Fork 43
/
fix-names-in-a-table.sql
60 lines (48 loc) · 1.31 KB
/
fix-names-in-a-table.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*
Fix Names In A Table Problem
Description
LeetCode Problem 1667.
Table: Users
+----------------+---------+
| Column Name | Type |
+----------------+---------+
| user_id | int |
| name | varchar |
+----------------+---------+
user_id is the primary key for this table.
This table contains the ID and the name of the user. The name consists of only lowercase and uppercase characters.
Write an SQL query to fix the names so that only the first character is uppercase and the rest are lowercase.
Return the result table ordered by user_id.
The query result format is in the following example:
Users table:
+---------+-------+
| user_id | name |
+---------+-------+
| 1 | aLice |
| 2 | bOB |
+---------+-------+
Result table:
+---------+-------+
| user_id | name |
+---------+-------+
| 1 | Alice |
| 2 | Bob |
+---------+-------+
*/
# V0
select user_id,
concat(upper(left(name,1)),lower(substring(name,2))) as name
from Users
order by user_id
# V1
# https://circlecoder.com/fix-names-in-a-table/
select user_id,
concat(upper(left(name,1)),lower(substring(name,2))) as name
from Users
order by user_id
# V2
# Time: O(nlogn)
# Space: O(n)
SELECT user_id, CONCAT(UPPER(SUBSTRING(name, 1, 1)), LOWER(SUBSTRING(name, 2))) AS name
FROM Activity
ORDER BY user_id;