나의 하루
수지니의 공부 기록 일지

본문 바로가기

카테고리 없음

SQL 간단 정리 - FLOOR, CEIL, ROUND그리고 SIGN

FLOOR()

여기에선 정수 보여주는 것으로 생각하면 된다. 소수점은 그냥 반내림 당했다고 보면 된다.

 

만약 무저건 올림차순된 값을 원한다면?

CEIL()사용하면 된다.

CEIL() [CEILING() // 형태 CEIL과 동일]

 

여기에선 무저건 소수점 첫 째자리를 올림한 값을 보여준다고 생각하면 된다. 만약 해당 값이 정수이면 그냥 그대로 보여준다.

 

만약 특정 소숫점에서 반올림한 값을 보고싶다면? ROUND를 사용하면 된다.

ROUND()

소수점 3째자리에서 반올림하고 둘째자리까지 보이게 해보았다.

 

만약 숫자가 양수 음수 0인지 구별해내는 값을 보고 싶다면? SIGN을 사용한다.

 

예시로 사용한 코드가 너무 길어져서 그냥 코드 가져왔다.

 

SIGN()

WITH PLUS_MINUS AS (
    SELECT 
        CASE 
            WHEN LENGTH >= 30 THEN LENGTH 
            ELSE -1 * LENGTH 
        END AS P_N
    FROM FISH_INFO
)
SELECT 
    IFNULL(P_N / 3,0) AS LENGTH_DIV_3, 
    SIGN(CASE 
        WHEN P_N IS NULL THEN 0 # NULL은 그냥 0처리 해줬다.
        ELSE (P_N / 3) 
    END) AS SIGNS
FROM PLUS_MINUS;

결과에서도 알 수 있듯이 양수면 1 음수면 -1 그리고 0이면 0을 반환해주는 것을 알 수 있다.

 

참고로 NULL값은

WITH PLUS_MINUS AS (
    SELECT 
        CASE 
            WHEN LENGTH >= 30 THEN LENGTH 
            ELSE -1 * LENGTH 
        END AS P_N
    FROM FISH_INFO
)
SELECT 
    P_N / 3 AS DIV_3,
    SIGN(P_N / 3) AS SIGNS
FROM PLUS_MINUS;

그냥 NULL로 반환한다.

 

공부 한줄 소감

  • 끝났다고 생각했을 땐 또 무언가 새로운게 나온다.... 앞으로도 열심히 하자!
  • SQLD... 60점만 넘게 해주세요8ㅁ8...ㅠㅠㅠ

 

데이터 셋 출처