[SQL] Scalar Functions

박미영·2023년 4월 26일
0

DataSchool StudyNote - SQL

목록 보기
11/12

📌Scalar Functions

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



📍UCASE

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

SELECT UCASE(string);



  • UCASE 예제1 : 문장을 모두 대문자로 조회
 select ucase('This Is ucase Test.');



  • UCASE 예제2 : $15 가 넘는 메뉴를 대문자로 조회
 select ucase(menu) from sandwich where price > 15;





📍LCASE

영문을 소문자로 변환하는 함수

SELECT LCASE(string);



  • LCASE 예제1 : $5 가 안되는 메뉴를 소문자로 조회
select lcase(menu) from sandwich where price < 5;





📍MID

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

SELECT MID(string, start_position, lenth);

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



  • MID 예제1 : 1번 위치에서 4글자를 조회
 select mid('This is mid test', 1, 4);



  • MID 예제2 : 6번 위치에서 5글자를 조회
select mid('This is mid test', 6, 5);



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



  • MID 예제4 : 8번 위치 (뒤에서 8번째 위치) 에서 3글자를 조회
select mid('This is mid test', -8, 3);



  • MID 예제5 : 11위 카페이름 중 두번째 단어만 조회 (6번 위치에서 4글자)

<11위 cafe 전체 이름>

select cafe from sandwich where ranking = 11;


<6번 위치에서 4글자>

 select mid(cafe, 6, 4) from sandwich where ranking = 11;



  • MID 예제6 : 11위 카페이름 중 두번째 단어만 조회 (-4번 위치 (뒤에서 4번째) 에서 4글자)
select mid(cafe, -4, 4) from sandwich where ranking = 11;





📍LENGTH

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

SELECT LENGTH(string);



  • LENGTH 예제1 : 다음 문장의 길이를 조회
select length('This is len test');



  • LENGTH 예제2 : 문자가 없는 경우 길이도 0
select length('');



  • LENGTH 예제3 : 공백의 경우에도 문자이므로 길이가 1
select length(' ');



  • LENGTH 예제4 : NULL 의 경우 길이가 없으므로 NULL
select length(NULL);



  • LENGTH 예제5 : sandwich 테이블에서 Top 3의 주소 길이를 검색
SELECT LENGTH(address), address from sandwich where ranking <= 3;





📍ROUND

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

SELECT ROUND(number, decimals_place);

  • number : 반올림할 대상
  • decimals : 반올림할 소수점 위치 (Option)



  • ROUND 예제1 : 반올림할 위치를 지정하지 않을 경우, 소수점 자리 (0) 에서 반올림
select round(315.625);



  • ROUND 예제2 : 소수점 첫번째 위치는 0
select round(315.625, 0);



  • ROUND 예제3 : 두번째 소수점 위치는 1
select round(315.625, 1);



  • ROUND 예제4 : 세번째 소수점 위치는 2
select round(315.625, 2);



  • ROUND 예제5 : 일단위 위치는 -1
select round(315.625, -1);



  • ROUND 예제6 : 십단위 위치는 -2
select round(315.625, -2);



  • ROUND 예제7 : sandwich 테이블에서 소수점 자리는 반올림해서 1달러 단위까지만 표시 (최하위 3개만 표시)
select ranking, price, round(price) from sandwich order by ranking desc limit 3;



  • ROUND 예제8 : oil_price 테이블에서 가격을 십원단위에서 반올림해서 조회하세요.
select round(가격, -2) from oil_price;





📍NOW

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

  • 국가 시간이 다르게 되어 있어서 현재 시간이 다를 수 있다. (필요시 변경해야 함)
SELECT NOW();





📍FORMAT

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

SELECT FORMAT(number, decimal_place);

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



  • FORMAT 예제1 : 소수점을 표시하지 않을 경우 0
select format(12345.6789, 0);



  • FORMAT 예제2 : 소수점 두자리까지 표시할 경우 2
select format(12345.6789, 2);



  • FORMAT 예제3 : 소수점 열자리까지 표시
select format(12345.6789, 10);



  • FORMAT 예제4 : oil_price 테이블에서 가격이 백원단위에서 반올림 했을 때 2000원 이상인 경우 천원단위에 콤마를 넣어서 조회
select format(가격, 0) from oil_price where round(가격, -3) >= 2000;



  • FORMAT 예제5 : oil_price 테이블에서 가격이 십원단위에서 반올림 했을 때 2000원 이상인 경우, 천단위에 콤마를 넣어서 조회하세요.
select format(가격 ,0), 가격 from oil_price
where round(가격, -2) >= 2000;


"이 글은 제로베이스 데이터 취업 스쿨 강의를 듣고 작성한 내용으로 제로베이스 데이터 취업 스쿨 강의 자료 일부를 발췌한 내용이 포함되어 있습니다."

0개의 댓글