DB

[SQL] UPDATE 시 LIKE 조건에 컬럼 이름 사용하기

땅부자몽구스 2021. 7. 12. 01:26

행정구역 이름이 들어있는 컬럼의 값을 데이터 정합성을 위해 행정구역 코드로 변경해야 했다.

같은 행정구역이어도 다른 값이 들어오는 경우가 있었기 때문이다.

 

예를 들자면 "경기도"를 뜻하는 데이터가 "경기도"와 "경기" 두 가지로 들어오는 것이다.

이에 행정구역 테이블의 행정구역 코드 컬럼과 LIKE 조건을 통해서 UPDATE를 하였다.

 

이 때 구글링을 통해 찾아 사용한 SQL문은 아래와 같다.

 

가정

1. user라는 테이블은 city라는 컬럼을 가지고 있고, 해당 컬럼에 행정구역 이름 데이터가 들어있다.

2. city라는 테이블은 city_code와 city_name 컬럼을 가지며, 행정구역 코드와 행정구역 이름 데이터가 들어있다.

 

사용한 DBMS는 PostgreSQL이다.

update user
set city = c.city_code
from (select city_code, city_name from city) c
where c.city_name like '%' || user.city || '%'