Lim Seunghyun Space

[MySQL] Swap values within a column 본문

SQL/SQL 공부

[MySQL] Swap values within a column

Lim Seung Hyun 2023. 3. 20. 09:18

LeetCode의 문제 중 칼럼 내의 성별을 남자는 여자로, 여자는 남자로 변경하는 SQL을 작성하는 문제가 있었다.

문제는 별도의 임시 테이블을 생성하지 않고 UPDATE문을 이용하는 게 조건이었다.

 

 

CASE-WHEN을 이용하여 간단하게 작성할 수 있지만

UPDATE Salary
SET sex = CASE
    WHEN sex = "f" THEN "m"
    WHEN sex = "m" THEN "f"
    END;

다른 방법으로도 할 수 있을거 같아서 조사해 보았다.

 

다른 방법으로는 조건 검증에 사용되는 IF() 함수를 사용하는 것으로

Syntax는 IF(condition, true_value, false_value) condition이 참이면 true_value로 거짓이면 false_value를 반환한다.

 

IF() 함수를 이용하면

UPDATE Salary
SET sex = IF(sex = "m", "f", "m");

CASE-WHEN 보단 깔끔하게 쿼리를 작성할 수 있다.

 

 

결론적으로 같은 칼러의 값들을 서로 교환하고 싶을 때는 CASE-WHEN 혹은 IF() 함수를 사용하자.

 

 

Reference

728x90

'SQL > SQL 공부' 카테고리의 다른 글

[MySQL] DELETE JOIN  (0) 2023.03.20
Transaction(트랜잭션)  (0) 2021.12.08
DELETE FROM과 TRUNCATE  (0) 2021.12.08