반응형
그룹화된 데이터 내에서 순번을 업데이터를 하기 위해서 ROW_NUMBER() 함수를 사용합니다.
만약 아래와 같은 데이터가 있다고 할 때 '박길동'을 삭제하고 나이순 데이터를 1~4번까지 다시 정렬하여 업데이트를 하고 싶을 수 있습니다.
아래와 같이 말이죠.
이 때는 MSSQL의 ROW_NUMBER() 함수를 사용하여 업데이트할 수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
WITH UPDATE_DATA AS
(
SELECT QueueID,
QueueSeq,
ROW_NUMBER() OVER(ORDER BY QueueSeq ASC) AS SEQ
FROM Queue
WHERE 1=1
AND QueueID = 'queue1'
)
UPDATE Queue
SET QueueSeq = SEQ
FROM Queue AS A
INNER JOIN UPDATE_DATA AS B
ON B.QueueID = A.QueueID
;
|
cs |
위 예제에서는 업데이트를 한 번에 수행하기 위해서 임시 테이블을 만들어서 정렬 값을 임시 테이블에 저장하고 원본 데이터를 업데이터 처리했습니다.
반응형
'IT > MSSQL' 카테고리의 다른 글
MSSQL DATETIME 특정 날짜 구하기 (0) | 2023.06.23 |
---|---|
MSSQL DATETIME 날짜형 (0) | 2023.06.23 |
MSSQL 쿼리 작성시 SELECT IN 구문에 사용하는 변수 선언(DECLARE) 방법 (0) | 2023.03.24 |
MSSQL WHERE 절에 IN 구문에 사용하기 위해 변수 선언 및 할당 (0) | 2023.02.14 |
MSSQL 테이블/컬럼 스키마 조회 및 참조관계 확인 (0) | 2022.05.27 |
댓글