Update로 데이터 오름차순 정렬하여 저장하기
구글링을 해봤지만 전부 나에게 필요없는 정보들밖에 없어서 고생끝에 해결했다..
테이블에 컬럼명이 'SEQ'인 순서 저장하는 컬럼이 있었는데
다른 컬럼의 이름을 오름차순으로 정렬한 대로 'SEQ'를 다시 입력해줘야했다.
아래의 해결방법은 'WITH'을 이용한 임시 테이블('TEST')을 만들어서 활용하였다.
SET과 WHERE에 들어가는 임시 테이블('TEST')은 같게 설정해준다.
오름차순 정렬은 구글링을 통해 참고하였다.
------------------------------------------------------------------------------------------------------------------
UPDATE 테이블명 A
SET SEQ = (
WITH TEST AS (
SELECT
ROW_NUMBER() OVER(ORDER BY '오름차순 기준으로 할 컬럼명') AS SEQ,
컬럼명
FROM 테이블명
조건~
)
SELECT SEQ
FROM TEST
WHERE 컬럼명 = A.컬럼명
)
WHERE 컬럼명 IN (
WITH TEST AS (
SELECT
ROW_NUMBER() OVER(ORDER BY '오름차순 기준으로 할 컬럼명') AS SEQ,
컬럼명
FROM 테이블명
조건~
)
SELECT SEQ
FROM TEST
)
;
------------------------------------------------------------------------------------------------------------------
근데 정확하게 왜 이게 어떻게 동작하는지는 모른다.. 응애..
정말 여러번 시도 끝에 얼떨결에 해결했다..
더 나은 방법이 있을 지도 모르겠지만 일단 내가 원하는대로 됐으니까 다행이다.
다시 이 쿼리문을 짜라고 하면 못할 것 같다..
블로그에 올려두고 두고두고 써야겠다..