728x90
반응형
MSSQL 사용 간 난수 생성이 필요해 찾다가 알게 되어 기록으로 남기고자 합니다.
* 최저값과 최고값을 포함하는 경우 (단일)
DECLARE @min INT = 0 --최소
DECLARE @max INT = 4 --최대
SELECT CONVERT(INT, ((@max + 1) - @min) * RAND() + @min)
* 최저값과 최고값을 포함하는 경우 (다중)
- 임의의 임시 테이블을 생성하고 간단하게 값을 입력합니다.
CREATE TABLE #temp(
idx int,
text varchar(4),
randdom int
);
INSERT INTO #temp VALUES (1, 'test', 0)
INSERT INTO #temp VALUES (2, 'test', 0)
INSERT INTO #temp VALUES (3, 'test', 0)
INSERT INTO #temp VALUES (4, 'test', 0)
INSERT INTO #temp VALUES (5, 'test', 0)
- 다중행에 적용하기 위해 SELECT문을 작성합니다.
DECLARE @min INT = 0 --최소
DECLARE @max INT = 4 --최대
SELECT idx, text, CONVERT(INT, ((@max + 1) - @min) * RAND() + @min)
FROM #temp
- 조회 시 각 행에 전부 동일한 난수 생성 결과가 조회됩니다.
- 각 행에 난수를 적용하기 위해 아래와 같이 변경합니다.
DECLARE @min INT = 0 --최소
DECLARE @max INT = 4 --최대
SELECT idx, text, CONVERT(INT, ((@max + 1) - @min) * RAND(CONVERT(VARBINARY, NEWID())) + @min)
FROM #temp
이상입니다.
728x90
반응형
'컴퓨터 > MSSQL' 카테고리의 다른 글
임시 테이블 확인 및 삭제 (0) | 2024.08.09 |
---|---|
두 테이블의 일치하지 않는 항목 조회(NOT IN, NOT EXIST) (0) | 2022.11.04 |
MSSQL 서버 접속 시 액세스 거부 해결 방법 (0) | 2022.06.15 |
MSSQL WITH 구문 사용 방법 (단일(?), 다중(?) 변수) (0) | 2021.03.24 |
MSSQL 선입 선출 적용 방법(feat. WITH 구문) (0) | 2021.03.24 |