일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 그리디
- docker image
- 알고리즘
- Dynamic Programming
- delete join
- 빅데이터를 지탱하는 기술
- Data Engineering
- 백준 온라인 저지
- Pseudo Lab
- terraform
- SQL
- hackerrank
- 백준온라인저지
- dsf
- Spark
- telegram
- Airflow
- 2023년 목표
- 데이터 엔지니어
- MySQL
- airflow architecture
- docker container
- 프로그래머스
- datacamp
- Python
- data_engineer
- docker
- airflow webserver
- leetcode
- BOT
Archives
- Today
- Total
Lim Seunghyun Space
[MySQL] Swap values within a column 본문
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 |