숫차적으로 부여되는 수에서 3가지 값으로 구분할수 있는방법?? 0 2 669

by lgxj [SQL Query] [2022.01.11 17:10:31]


예를들면 수는 0부터100까지 순차적으로 증가 하다고 할때

기존에는 2로 나눈 나머지 값이 정수, 소수 일때 정수 = '0' , 소수일대 '1' 이렇게 구분을 했는데요..여기에 조건이 추가되서 '0', '1', '2' 로 구분을해야되는데..어떤식으로 해야 될까요??

by 마농 [2022.01.12 08:24:50]
WITH t AS
(
SELECT LEVEL - 1 seq FROM dual
CONNECT BY LEVEL <= 101
)
SELECT seq
     , MOD(seq, 2) gb2
     , MOD(seq, 3) gb3
  FROM t
;

 


by 뉴비입니다 [2022.01.12 11:46:00]

 

 

일반적으로 숫자를 분류하고 싶을 때 modulus(나누었을 때 나머지)를 많이 사용합니다

2개의 분류로 나누고 싶으면 ==> 2로 나눈 나머지가 0인 숫자들 / 1인 숫자들

3개의 분류로 나누고 싶으면 ==> 3으로 나눈 나머지가 0인 숫자들 / 1인 숫자들 / 2인 숫자들

WITH t AS
(
SELECT LEVEL - 1 numbers FROM dual
CONNECT BY LEVEL <= 101
)
SELECT case when MOD(numbers, 3)=0 then numbers END AS a, 
       case when MOD(numbers, 3)=1 then numbers END AS b,
       case when MOD(numbers, 3)=2 then numbers END AS c

  FROM t
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입