MSSQL을 사용하다 보면 필드 값을 변경하거나 조건에 맞는 값을 새로운 필드에 입력해야 하는 경우가 있습니다. 엑셀에서는 IF 함수를 사용해서 조건에 맞는 값을 입력하는 방법을 사용합니다. 엑셀에서 사용하는 IF 조건 함수와 유사한 역할을 하는 함수가 UPDATE 문 + CASE WHEN THEN 문이 될 것 같습니다.
1. UPDATE 문 사용 방법
2. 조건에 맞는 값을 입력하는 방법(CASE WHEN THEN와 UPDATE 문 활용)
1. UPDATE 문 사용 방법
기준 TABLE 작성
지난번에 COUNT 함수 설명할때 사용한 노원구의 아파트 단지 중 전세가율이 높은 단지의 상위 50개 정도의 임의 TABLE을 재활용해 보겠습니다.

1) UPDATE 문 구조
UPDATE TABLE 테이블명 SET 필드명 = 값
[사용 예시]
테이블에서 '지역구'라는 새로운 필드를 만들어서 해당 필드에 "노원구"라는 문자를 일괄 기입(UPDATE)해보는 쿼리를 만들어 보겠습니다.
우선 업데이트를 위해 기존 테이블에서 [지역구]라는 새로운 필드를 하나 만든 후 [지역구]라는 필드에 "노원구"라는 텍스트를 입력해보겠습니다. 필드 생성 방법은 이전 글을 참조하시면 되겠습니다.
ALTER TABLE [기타자료].dbo.노원구 ADD 지역구 VARCHAR(10)
UPDATE [기타자료].dbo.노원구 SET [지역구] = '노원구'
- [기타자료].dbo.노원구 라는 테이블의 [지역구]라는 필드에 "노원구"라는 텍스트를 일괄 입력(UPDATE)
[쿼리 결과]
[지역구]라는 새로운 필드에 "노원구"라는 텍스트가 입력되었습니다.

단순한 UPDATE 문은 지정한 값(노원구)이 일괄적으로 들어가게 됩니다. 만약 특정한 조건의 레코드에만 입력하고 싶은 경우에는 WHERE 절을 같이 이용하여 사용하면 되겠습니다.
예시로 설명드리겠습니다.
2) WHERE과 같이 활용한 UPDATE 예시
UPDATE TABLE 테이블명 SET 필드명 = 값
WHERE 필드명 조건
[사용 예시]
소재지가 "상계동", "중계동", "하계동"인 레코드에만 "노원3계"라는 텍스트를 입력하고자 합니다. WHERE 절과 IN을 사용하여 쿼리를 작성하면 됩니다.
UPDATE [기타자료].dbo.노원구 SET [지역구] = '노원3계'
WHERE [소재지] IN ('상계동', '중계동', '하계동')
- [기타자료].dbo.노원구 라는 테이블에서 [소재지]가 (상계동, 중계동, 하계동)인 경우만 [지역구]라는 필드에 "노원3계"라는 텍스트를 입력
[쿼리 결과]
[지역구]라는 새로운 필드에서 [소재지]가 (상계동, 중계동, 하계동)인 경우만 "노원3계"라는 텍스트가 입력되었습니다.

2. 조건에 맞는 값을 입력하는 방법(CASE WHEN THEN와 UPDATE 문 활용)
이번에는 WHERE 절 이외에 다양한 조건에 따라 입력해야 할 값이 상이할 경우 CASE WHEN THEN 구문을 활용하는 방법에 대해서 알아보겠습니다. 이 조건이 엑셀에서는 IF 함수와 같은 기능이라고 할 수 있을 것 같습니다.
2) CASE WHEN THEN 구문과 UPDATE 문 사용 구조
UPDATE TABLE 테이블명 SET 필드명 =
(CASE WHEN 필드명 조건 THEN 값
WHEN 필드명 조건 THEN 값
ELSE 값
END)
- 필드명에 입력할 값을 CASE WHEN THEN을 이용하여 조건에 맞을 경우 조건별 값을 달리 입력
[사용 예시]
단지의 건축 연도에 따라 [연식]이라는 새로운 필드를 만들어 2020년식, 2010년식, 2000년식, 1999년식으로 구분하여 입력하는 쿼리를 작성해 보겠습니다.
ALTER TABLE [기타자료].dbo.노원구 ADD 연식 VARCHAR(10)
UPDATE [기타자료].dbo.노원구 SET 연식 =
(CASE WHEN 건축년도 >= 2020 AND 건축년도 < 2030 THEN '2020년식'
WHEN 건축년도 >= 2010 AND 건축년도 < 2020 THEN '2010년식'
WHEN 건축년도 >= 2000 AND 건축년도 < 2010 THEN '2000년식'
ELSE '1990년식'
END)
- 건축년도에 따라 연식을 다르게 입력하는 방법으로 값이 숫자가 아닌 문자인 경우는 작은 따옴표를 붙여서 사용하시기 바랍니다.
[쿼리 결과]
[연식]이라는 새로운 필드에 건축년도 조건에 따라 4가지의 연식이 입력된 것을 확인할 수 있습니다.

이상으로 UPDATE 문의 사용방법에 대해서 알아보았습니다. UPDATE 문을 사용할 때 CASE WHEN THEN과 같이 사용하여 조건에 따라 값을 달리하여 UPDATE도 가능합니다.
또한 엑셀에서 사용되는 VLOOKUP 함수와 비슷하게 JOIN을 통해 다른 테이블의 값을 UPDATE 할 수도 있습니다. UPDATE 문은 단순히 값을 입력하는 도구일 뿐 어떤 값을 입력할 지에 대한 다양한 구문이 있으니 잘 활용하시면 데이터 관리에 많은 도움이 될 것입니다.
업무에 많은 도움이 되기를 바랍니다.
'OFFICE TOOL > MSSQL' 카테고리의 다른 글
MSSQL JOIN 종류와 사용방법(엑셀 VLOOKUP 기능의 JOIN) (0) | 2022.10.21 |
---|---|
MSSQL 중복건수나 엑셀 피봇형식의 그룹별 통계 COUNT와 HAVING 절 사용방법 (0) | 2022.10.18 |
MSSQL 숫자 자리수 변경하는 방법(숫자 앞에 0추가하기) (1) | 2022.10.06 |
MSSQL 필드 추가, 필드 수정, 필드 이름변경, 필드 삭제 쿼리 방법 (0) | 2022.10.06 |
댓글