SQL Query을 작성하다보면 가끔씩 난수를 필요로 할때가 발생을 한다.
게임쪽에서 업무를 보고 있자니 이러한 난수 및 쿠폰번호 같은 것을 필요로 할때가 참 많다.
첫 번째, Query의 난수 범위는 11 ~ 99 이고
두 번째, Query의 난수 범위는 10 ~ 100 이다. 잘 이해가 되지 않는다면 직접 연습장을 들고 스스로 계산을 해보면 이해가 바로 될 것이다.
이것 또한, 업무에서 많이 쓰는것 중 하나이다. 어떠한 이벤트를 할때 입력해야 하는 쿠폰번호 MS-SQL에서는 newid() 함수를 사용하여 손쉽게 만들수가 있다.
게임쪽에서 업무를 보고 있자니 이러한 난수 및 쿠폰번호 같은 것을 필요로 할때가 참 많다.
/*
난수발생시키기
출처: http://bluemir7.tistory.com/60
*/
declare @is_limit int -- 난수범위 시작 숫자
declare @ie_limit int -- 난수범위 끝 숫자
set @is_limit = 10
set @ie_limit = 100
select round(((@ie_limit - @is_limit + 1) * rand() + @is_limit), 0, 1) as randomNum
/*
randomNum
----------------------
73
*/
select round(((@ie_limit - @is_limit) * rand() + @is_limit), 0, 1) as randomNum
/*
randomNum
----------------------
28
*/
첫 번째, Query의 난수 범위는 11 ~ 99 이고
두 번째, Query의 난수 범위는 10 ~ 100 이다. 잘 이해가 되지 않는다면 직접 연습장을 들고 스스로 계산을 해보면 이해가 바로 될 것이다.
select replace(newid(),'-','') as '쿠폰번호'
/*
쿠폰번호
----------------------------------------------------
99696D759F614BE6A90A2A3A6523BA5E
*/
이것 또한, 업무에서 많이 쓰는것 중 하나이다. 어떠한 이벤트를 할때 입력해야 하는 쿠폰번호 MS-SQL에서는 newid() 함수를 사용하여 손쉽게 만들수가 있다.
'MSSQL > T-SQL' 카테고리의 다른 글
SQL Server 확장이벤트(XEvent) (2) | 2009.10.15 |
---|---|
sq_execute & exec() (0) | 2009.10.09 |
MS-SQL 2005 형상관리 사용자계정 권한 살펴보기 (1) | 2009.08.14 |
MS-SQL 2005 에서 Stored Procedure 형상관리를 위한 Query (0) | 2009.07.07 |
MS-SQL 2000 에서 Stored Procedure 형상관리를 위한 Query (0) | 2009.07.07 |