SQL

leetcode > 1873. Calculate Special Bonus

jhj.sharon 2023. 2. 5. 23:59
λ°˜μ‘ν˜•

✨ 문제

 

πŸ’»μ½”λ“œ

/* Write your PL/SQL query statement below */
SELECT EMPLOYEE_ID, 
CASE WHEN MOD(EMPLOYEE_ID,2)=1 AND 
          NAME NOT LIKE 'M%' THEN SALARY ELSE 0
          END AS BONUS
FROM EMPLOYEES
ORDER BY EMPLOYEE_ID

 

πŸ‘©‍πŸ’» 풀이 방법

  • 문제의 쑰건 μ—¬λŸ¬κ°€μ§€μΈλ° 각각의 쑰건을 case when으둜 κ΅¬ν˜„ν–ˆλ‹€.
  • employee_idκ°€ odd number(ν™€μˆ˜)쑰건을 λ§Œμ‘±ν•˜κΈ° μœ„ν•΄μ„œ λ‚˜λ¨Έμ§€λ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜μΈ MOD()λ₯Ό μ‚¬μš©ν–ˆλ‹€. 즉 2둜 λ‚˜λˆ΄μ„ λ•Œ 1이 λ‚¨λŠ” ν™€μˆ˜μ˜ νŠΉμ„±μ„ μ΄μš©ν•œ 것이닀.
  • μ‚¬μ›μ˜ 이름이 M으둜 μ‹œμž‘ν•˜μ§€ λ§μ•„μ•Όν•œλ‹€λŠ” 것은 NOT LIKE 'M%'으둜 κ΅¬ν˜„ν–ˆλ‹€.

πŸ”” λŠλ‚€μ 

  • CASE μ ˆμ΄λ‚˜ μ‘°κ±΄μ ˆμ„ μ‚¬μš©ν•  λ•Œ 자꾸 ENDλ₯Ό μ“°λŠ” 것을 κΉŒλ¨ΉλŠ”λ‹€ γ… 
λ°˜μ‘ν˜•