알고리즘

[SQL] 584. Find Customer Referee (Easy)

파뱁 2024. 12. 26. 13:13
728x90

이번 것도 역시 select 쿼리를 사용하는 문제이다

https://leetcode.com/problems/find-customer-referee/description/?envType=study-plan-v2&envId=top-sql-50

⬆️ 문제 전문 링크

 

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 not referred by the customer with id = 2.

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 |
+------+

 

 

해당 문제는 Customer 테이블에서 referee_id 가 2가 아닌 name 을 뽑는 문제다.

다만 유의할 점은 referee_id가 null 인 경우에도 추출이 되어야 한다는 점이다.

이를 위해 NVL() 함수를 사용하였다.

NVL(대상 컬럼, null 일 경우 치환할 데이터) 의 함수로서

대상 컬럼이 null 일 경우 특정 값으로 치환해주는 역할을 한다.

 

풀이는 다음과 같다.

 

select name
from Customer
where NVL(referee_id, 0) != '2';
728x90
반응형