출처 :  http://blog.naver.com/csaiur/10044212394



--랜덤 숫자 (양수/음수)
SELECT DBMS_RANDOM.RANDOM FROM DUAL;

--랜덤 숫자 (0~1 사이)
SELECT DBMS_RANDOM.VALUE FROM DUAL;

--랜덤 숫자 (1~1000 사이)
SELECT DBMS_RANDOM.VALUE(1,1000) RANDOM FROM DUAL;

--랜덤 숫자 (천억~조-1 사이)
SELECT DBMS_RANDOM.VALUE(100000000000, 999999999999) RANDOM FROM DUAL;

--대문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('U', 20) STR FROM DUAL;

--소문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('L', 20) STR FROM DUAL;

--대문자+소문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('A', 20) STR FROM DUAL;

--대문자+숫자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('X', 20) STR FROM DUAL;

--대문자+소문자+숫자+특수문자 20글자 랜덤
SELECT DBMS_RANDOM.STRING('P', 20) STR FROM DUAL; 




--응용 : 1~100 사이 양의정수만 랜덤으로 가져오기 
SELECT FLOOR(DBMS_RANDOM.VALUE(1,100)) FROM DUAL;



 
--정렬을 랜덤으로 할 경우 (DBMS_RANDOM 이용시) 

--VALUE()안에는 최소,최대값이 들어가지만 넣지 않아도 됨
SELECT * FROM 테이블명 ORDER BY DBMS_RANDOM.VALUE(); 
 
SELECT * FROM 테이블명 WHERE ROWNUM < 원하는건수 + 1 ORDER BY DBMS_RANDOM.VALUE();




--정렬을 랜덤으로 할 경우 (SAMPLE() 이용시)

--SAMPLE()안의 숫자는 백분률로 만일 총 100건일때 10건만 추출함
SELECT * FROM 테이블명 SAMPLE(10);

SELECT * FROM ADM_MENU SAMPLE(원하는백분률값) WHERE ROWNUM < 원하는건수 + 1;

 

 

+ Recent posts