[SQL] Scalar Functions

jane05·2023년 11월 5일
0
post-thumbnail
  • AWS, zerobase 사용
  • sandwich 데이터

0️⃣ Scalar Functions


  • 입력값을 기준으로 단일 값을 반환하는 함수
FunctionDescription
UCASE영문을 대문자로 변환하는 함수
LCASE영문을 소문자로 변환하는 함수
MID문자열 부분을 반환하는 함수
LENGTH문자열의 길이를 반환하는 함수
ROUND지정한 자리에서 숫자를 반올림하는 함수 (0이 소수점 첫째 자리)
NOW현재 날짜 및 시간을 반환하는 함수
FORMAT숫자를 천단위 콤마가 있는 형식으로 반환하는 함수

1️⃣ UCASE


  • 영문을 대문자로 반환하는 함수
SELECT UCASE(string);
SELECT UCASE('This Is ucase Test.');


2️⃣ LCASE


  • 영문을 소문자로 변환하는 함수
SELECT LCASE(string);
SELECT LCASE('This Is ucase Test.');


3️⃣ MID


  • 문자열 부분을 반환하는 함수
    • string : 원본 문자열
    • start : 문자열 반환 시작 위치. (첫글자는 1, 마지막글자는 -1)
    • length : 반환할 문자열 길이
SELECT MID(string, start_position, length);
  • 1번 위치에서 4글자를 조회
SELECT MID('This is mid test', 1, 4);

  • -4번 위치 (뒤에서 4번째 위치) 에서 4글자를 조회
SELECT MID('This is mid test', -4, 4);


4️⃣ LENGTH


  • 문자열의 길이를 반환하는 함수
SELECT LENGTH(string);
SELECT LENGTH('This is len test');
  • 문자가 없는 경우 길이도 0

  • 공백의 경우에도 문자이므로 길이가 1

  • NULL 의 경우 길이가 없으므로 NULL


5️⃣ ROUND


  • 지정한 자리에서 숫자를 반올림하는 함수

    • number : 반올림할 대상
    • decimals : 반올림할 소수점 위치 (Option)
    SELECT ROUND(number, decimals_place);
    • 반올림할 위치를 지정하지 않을 경우, 소수점 자리 (0) 에서 반올림 (소수점 아래에서 반올림)

    • 소수점 첫번째 위치는 0 (소수점 아래에서 반올림한 것과 같은 값 출력)

    • 두번째 소수점 위치는 1

      SELECT ROUND(315.625, 1);

    • 일단위 위치는 -1

      SELECT ROUND(315.625, -1);

    • 십단위 위치는 -2

      SELECT ROUND(315.625, -2);

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

      SELECT ranking, price, ROUND(price)
      FROM sandwich
      ORDER BY ranking DESC
      LIMIT 3;

6️⃣ NOW


  • 현재 날짜 및 시간을 반환하는 함수: 시간이 알맞게 설정되어 있어야 한다.
    SELECT NOW();

7️⃣ FORMAT


  • 숫자를 천단위 콤마가 있는 형식으로 반환하는 함수

    • number : 포맷을 적용할 문자 혹은 숫자
    • decimals : 표시할 소수점 위치
    SELECT FORMAT(number, decimal_place);
  • 소수점을 표시하지 않을 경우 0 : 소수점 아래에서 반올림 및 천 단위 표시

    SELECT FORMAT(12345.6789, 0);

  • 소수점 두자리까지 표시할 경우 2 : 소수점 셋째자리에서 반올림하여 표시

    SELECT FORMAT(12345.6789, 2);

  • 소수점 열자리까지 표시 : 소수점 아래 열번째 자리가 없는 경우 -> 빈 값을 0으로 표시한다.

    SELECT FORMAT(12345.6789, 10);

  • 예제) oil_price 테이블에서 가격이 백원단위에서 반올림 했을 때 2000원 이상인 경우 천원단위에 콤마를 넣어서 조회

    SELECT FORMAT(가격, 0)
    FROM oil_price
    WHERE ROUND(가격, -3) >= 2000;

profile
데이터 분석 공부 기록

0개의 댓글