포스트

[leetcode][sql] Null

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
Q4. Find Customer Referee
Easy
Topics
premium lock icon
Companies
Hint
SQL Schema
Pandas Schema
Table: Customer

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
| referee_id  | int     |
+-------------+---------+
In SQL, id is the primary key column for this table.
Each row of this table indicates the id of a customer, their name,
and the id of the customer who referred them.
 

Find the names of the customer that are either:

referred by any customer with id != 2.
not referred by any customer.
Return the result table in any order.

The result format is in the following example.

 

Example 1:

Input: 
Customer table:
+----+------+------------+
| id | name | referee_id |
+----+------+------------+
| 1  | Will | null       |
| 2  | Jane | null       |
| 3  | Alex | 2          |
| 4  | Bill | null       |
| 5  | Zack | 1          |
| 6  | Mark | 2          |
+----+------+------------+
Output: 
+------+
| name |
+------+
| Will |
| Jane |
| Bill |
| Zack |
+------+

NULL 처리를 놓치지 않아야 하는 문제

2가 아닌 다른 사람이 추천: referee_id != 2 추천인이 없음: referee_id IS NULL

NULL != 2 는 FALSE가 아니라 UNKNOWN 그런데 WHERE절에서 UNKNOWN은 FALSE로 취급됨. SELECT에서 배제됨.

1
2
3
4
5
# Write your MySQL query statement below

SELECT name
FROM Customer
WHERE referee_id != 2 OR referee_id IS NULL;

#leetcode #sql #null처리

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.