728x90
10만개의 데이타가 들어 있는 테이블 1개가 있다고 가정.
10만개의 데이타를 10개를 나줘 시작 번호와 끝번호를 가져와라.
시작번호 와 끝번호를 가져오려고 하는 대상 테이블 필드의 최대값을 알아야한다 .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | DECLARE @ROWS INT = 13859850, --> 대상 테이블의 전체 Row 수 또는 MAX 값 @BATCHES INT = 10; --> 나눌려는 WITH E(N) AS( SELECT N FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0))E(N) ), E2(N) AS( SELECT A.N FROM E A, E B ), E4(N) AS( SELECT A.N FROM E2 A, E2 B ), CTETALLY(N) AS( SELECT TOP (@BATCHES) ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) N FROM E4 ) SELECT N AS [THERANGE], 1 + CEILING(@ROWS / @BATCHES) * (N -1) AS [RANGESTART], CEILING(@ROWS / @BATCHES) * N AS [RANGEEND] FROM CTETALLY | cs |

728x90
'[2]SW Development Note' 카테고리의 다른 글
MSSQL 외래키 조회 (0) | 2021.08.11 |
---|---|
nmap 명령어/사용법 (0) | 2021.08.02 |
특정 필드의 정수 값으로 row 분할하기.[MSSQL] (0) | 2021.08.02 |
Flutter (0) | 2020.12.02 |
버그란 무엇인가? (0) | 2020.08.28 |
댓글