SQL 심화(7)_Scalar Functions : UCASE, LCASE, MID, LENGTH, ROUND, NOW, FORMAT

Jio.B·2023년 7월 24일
0

Scalar Functions

  • 입력값을 기준으로 단일 값을 반환하는 함수

UCASE (upper case)

  • 예제 : 15$가 넘는 메뉴를 대문자로 반환하기

LCASE (lower case)


MID

  • 예제 : 6번 위치에서 5글자 조회

    SELECT MID ('This is mid test', -4, 4);
    = 뒤에서 4번째 해당하는 글자(-4)부터 4개의 글자 조회
    출력 결과 : test


LENGTH

  • 글자수 카운팅에 공백도 포함
  • 단, NULL의 경우 길이에 해당하는 대상 자체가 없으므로 '0'이 아닌 'NULL'값으로 표기

  • 예제 : sandwich 테이블에서 top3의 주소 길이를 검색 ~ranking 사용~

ROUND

  • 반올림

  • 반올림할 위치를 지정하지 않을 경우, 자동설정에 따라 소수점 자리(0)에서 반올림

  • 소수점 첫번째 위치는 0 ( = 반올림 위치를 지정하지 않을 경우와 결과가 같음)

  • 일단위 위치는 -1

  • 예제 : sandwich 테이블에서 소수점 자리는 반올림해서 1달러 단위까지만 표시(최하위 3개만 표시)

NOW

  • 조회한 시점의 현재시각을 표시
  • 문법
    SELECT NOW( ) ;

FORMAT

  • 숫자를 천 단위마다 콤마(,)가 있는 형식으로 변환
  • 문법은 ROUND와 유사함(어디를 기준으로 환산할지에 대한 위치를 직접 지정할 수 있음)

  • 소수점을 표시하지 않고 천의 단위마다 ,를 추가할 경우 = 0
  • 소수 둘째자리까지 표시하고 천의 단위마다 ,를 추가할 경우 = 2
  • 예제 : oil_price 테이블에서 가격이 십원단위에서 반올림 했을 때 2000원 이상인 경우 천원 단위에 콤마(,)를 넣어서 조회하기
select format(가격, 0), 가격
    -> from oil_price
    -> where round(가격, -2) >= 2000;

!! 참고 !!
(1) ROUND는 숫자로 된 값만 반환할 수 있음
(2) 반면 FORMAT은 천의 단위마다 ,를 추가함으로써 값을 문자열(string)로 반환하게 됨
(3) 즉, 이 경우 ROUND 대신 FORMAT을 사용할 수 없음

0개의 댓글