특정 문자를 RIGHT로 찾아서 REPLACE 로 UPDATE 하기
급한 사람을 위해 결론부터 설명하겠습니다.
1. 결론
MS SQL
UPDATE ezControl_ELM
SET SERVICECONFIG = REPLACE(SERVICECONFIG,RIGHT(SERVICECONFIG,4),ELMID)
WHERE (ELMTYPENO = 2) AND (ELMNAME LIKE 'inline%')
2. 상황
SERVICECONFIG 의 값이 아래와 같다. (통 문자열로 관리하고있다.)
"TYPE=Host,BINDING=Tcp,NAME=SVC,ADDRESS=10.14.33.221,PORT=21801"
문자열 중에 가장 오른쪽 4개가 ELMID로 변경을 해야하는 상황이 발생했다.
1) RIGHT( 추출할 컬럼 명, 오른쪽에서 추출한 문자 수)
오른쪽 4개의 문자열을 꺼내오는 방법은 아래와 같다.
Right
RIGHT(SERVICECONFIG,4)
2) REPLACE( 바꿀 컬럼 명, 바꿔야하는 기존 문자, 바꿀 신규 문자)
RIGHT로 추출한 4개의 문자를 ELMID로 변경하는 방법은 아래와 같다.
Replace
REPLACE(SERVICECONFIG,RIGHT(SERVICECONFIG,4),ELMID)
3) UPDATE문
Update ~ Set ~
UPDATE (변경할테이블) SET (변경할값을 넣는 부분)
이렇게 사용한다.
3. 추가 (RIGHT, LEFT, SUBSTRING)
RIGHT 대신에 문자열 잘라내는 다른 명령어를 알아보자
1) RIGHT
RIGHT
RIGHT(문자열, 자를문자수)
RIGHT(SERVICECONFIG,4)
2) LEFT
LEFT
LEFT((문자열, 자를문자수)
LEFT(SERVICECONFIG,4)
3) SUBSTRING
SUBSTRING
SUBSTRING(문자열, 시작문자인덱스, 자를문자수)
SUBSTRING(SERVICECONFIG, 14, 4)
'SQL' 카테고리의 다른 글
[SQL] CASE 문으로 유용한 쿼리문 예시 (0) | 2023.05.21 |
---|---|
[MySql] intellij에서 mysql 설치 및 terminal에서 실행(mac) (0) | 2023.03.16 |
트랜잭션 ACID (0) | 2022.12.04 |
[MS SQL] 다중 JOIN 문 (0) | 2021.08.30 |
[MS SQL] UPDATE SET 값을 다른 테이블에서 가지고 오기 (0) | 2021.08.30 |