로또 번호를 추출하는 것은 난수 생성 기능을 사용하여 구현할 수 있습니다.
Microsoft SQL Server (MSSQL)에서는 NEWID() 함수를 사용하여 무작위성을 생성하고, 이를 RAND() 함수와 함께 사용하여 난수를 생성할 수 있습니다. 그러나 로또 번호는 특정 범위 내에서 중복되지 않는 숫자들의 집합이므로, 이를 구현하기 위해서는 약간의 추가 로직이 필요합니다.
아래는 MSSQL을 사용하여 1부터 45까지의 숫자 중에서 중복되지 않는 6개의 로또 번호를 추출하는 방법의 예시입니다:
DECLARE @Lotto TABLE (Number INT);
WHILE (SELECT COUNT(*) FROM @Lotto) < 6
BEGIN
DECLARE @RandNumber INT;
SELECT @RandNumber = ROUND((RAND(CHECKSUM(NEWID())) * 44) + 1, 0);
IF NOT EXISTS (SELECT * FROM @Lotto WHERE Number = @RandNumber)
BEGIN
INSERT INTO @Lotto (Number) VALUES (@RandNumber);
END
END
SELECT * FROM @Lotto;
결과값
이 스크립트는 다음과 같이 작동합니다:
- 임시 테이블 @Lotto를 선언하여 로또 번호를 저장합니다.
- 총 6개의 숫자가 추출될 때까지 루프를 반복합니다.
- 각 반복에서, NEWID()를 이용해 생성된 난수를 바탕으로 1부터 45까지의 숫자 중 하나를 선택합니다.
- 이 숫자가 이미 추출된 숫자가 아닌 경우에만 @Lotto 테이블에 추가합니다.
- 최종적으로 6개의 유니크한 숫자가 추출됩니다.
이 스크립트는 간단한 로또 번호 생성기로 사용될 수 있으며, 필요에 따라 더 복잡한 로직이나 조건을 추가할 수 있습니다.
'Program > MSSQL' 카테고리의 다른 글
Microsoft SQL Server (MSSQL)의 데이터를 엑셀로 내보내기 (0) | 2024.01.18 |
---|---|
Microsoft SQL Server (MSSQL)에서 특정 테이블의 모든 컬럼 이름을 출력 (0) | 2024.01.18 |
mssql 테이블 중복제거 (0) | 2014.09.22 |
mssql 랜덤 함수 newid() (0) | 2014.08.26 |
저장 프로시저 검색 (0) | 2014.08.26 |