오늘은 SQL 난수 뽑기를 해보겠습니다.
사용 함수 : dbms_random.value() , ceil()
java 에서 Math.random() 함수를 사용해 지정 범위 내의 난수를 출력했던 것을 기억해 봅시다.
JAVA
예) 1~5 사이의 난수 출력
위에 코드를 보시면 단순히 함수만 입력해서는 츨력한 것이 아니라
형변환 (int) + jvava랜덤함수 Math.random() + 최대값 *10 + 최소값 +1
원하는 값을 위해 지정해준 몇가지 설정들이 있는 것을 볼 수 있습니다
SQL
예) 1~5 사이의 난수 출력 (실수)
SQL> select dbms_random.value(1,5) from dual;
DBMS_RANDOM.VALUE(1,5)
---------------------
4.97127761
함수 파라미터로는 난수가 출력 될 범위를 지정해두면 되는데요
콤마(,)를 기준으로 왼쪽에는 min값과 오른쪽 파라미터는 Max값를 넣어주면 됩니다.
java에서도 그랬듯이 SQL문 랜덤 함수 또한 실수로서 출력되기 때문에 SQL문에서도 정수 출력을 위해 함수를 하나 더 붙여줘야 합니다.
그것은 바로 CEIL(), ROUND() 입니다 . 실수에서 소수점 아래로 떨궈 정수로 바꿔주는 역할을 합니다.
적용은 dbms_random.value() 함수를 감싸주면 되니 간단하죠?
SQL
예) 1~5 사이의 난수 출력 (정수)
* ceil()
SQL> select ceil(dbms_random.value(1,5)) from dual;
CEIL(DBMS_RANDOM.VALUE(1,5))
----------------------------
4
* ROUND()
SQL> select round(dbms_random.value(1,5)) from dual;
ROUND(DBMS_RANDOM.VALUE(1,5))
----------------------------
4
즐거운 코딩 되세요~
'DATABASE > Oracle' 카테고리의 다른 글
데이터베이스의 언어 'SQL' 이란 (0) | 2018.04.24 |
---|