SCALAR FUNCTIONS

JYJ·2022년 2월 28일
0

SQL / MySQL

목록 보기
15/25

SCALAR FUNCTIONS

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


UCASE(대문자), LCASE(소문자)

  • 영문을 대문자로 반환하는 함수

✔ 다음의 문장을 모두 대문자로 조회

SELECT UCASE('This Is ucase Test.');


✔ $15가 넘는 메뉴를 대문자로 조회

SELECT UCASE(menu) FROM sandwich WHERE price > 15;


MID

  • 문자열 부분을 반환하는 함수

  • SELECT MID(string, start_position, length)

    • string : 원본 문자열
    • start_position : 문자열 시작위치 (첫글자는1, 마지막글자는 -1)
    • length : 반환할 문자열의 길이

✔ 1번 위치에서 4글자를 조회

SELECT MID('This is mid test', 1, 4);


✔ 6번 위치에서 5글자를 조회

SELECT MID('This is mid test', 6, 5);


✔ -4번 위치(뒤에서 4번째 위치)에서 4글자를 조회

SELECT MID('This is mid test', -4, 4);


✔ 11위 카페이름 중 두번째 단어만 조회(6번째 위치에서 4글자)

SELECT MID(cafe, 6, 4) FROM sandwich WHERE ranking = 11;


LENGTH

  • 문자열의 길이를 반환하는 함수

✔ 다음 문장의 길이를 조회

SELECT LENGTH('This in len test');

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

SELECT LENGTH(' ');

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

SELECT LENGTH(NULL);

✔ sandwich 테이블에서 top3의 주소 길이를 조회

SELECT LENGTH(address), address FROM sandwich WHERE ranking <= 3;


ROUND

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

  • SELECT ROUND(number, decimal_place)

    • number : 반올림할 대상
    • decimal_place : 반올림할 소수점 위치(옵션)

✔ 반올림할 위치를 지정하지 않을 경우, 소수점 첫번째자리(0)에서 반올림

SELECT ROUND(315.625);


✔ 세번째 소수점 위치에서 반올림

SELECT ROUND(315.625, 2);


✔ 일의자리 위치는 -1

SELECT ROUND(315.625, -1);


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

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


NOW

  • 현재 날짜 및 시간을 반환하는 함수

✔ 현재 날짜 및 시간 조회

SELECT NOW();


FORMAT

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

  • SELECT FORMAT(number, decimal_place)

    • number : 포멧을 적용할 문자 혹은 숫자
    • decimal_placce : 표시할 소수점 위치

✔ 소수점을 표시하지 않을 경우 0

SELECT FORMAT(12345.6789, 0);


✔ 소수점 두자리까지 표시할 경우 2

SELECT FORMAT(12345.6789, 2);


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

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


profile
Study note

0개의 댓글