SQL 함수란?
미리 정의된 기능 모음, 단일 행 함수와 그룹 함수가 있음
BIGQUERY 데이터 타입 함수
- 숫자 : INT
- 문자 : STRING
숫자 함수
ROUND
round 함수는 해당 항목 레코드의 숫자를 반올림 하여 출력하는 함수
빅쿼리에서는 % 사용 불가 -> mod 사용
float 나누기 int 불가능 -> 형변환 해야함
POWER
power 함수는 해당 항목 레코드의 숫자를 제곱하여 출력하는 함수
select power(숫자,승수)
select power(10,3)
SQRT
sqrt 함수는 해당 항목 레코드의 제곱근을 출력하는 함수
select sqrt(숫자)
select sqrt(10)
문자열 함수
SURSTR
문자열의 일부만 출력할 수 있음
select substr(문자열, 시작 위치, 길이)
select substr('hello world',1,5)
LEFT
문자열을 왼쪽에서 얼만큼 자를 지 설정한 후 조회할 수 있음
select substr('hello world',1,5)
select left('064-000-0000',3)
0부터 해도 상관 없음(1부터 한 것과 결과는 같음)
RIGHT
문자열을 오른쪽에서 얼만큼 자를 지 설정한 후 조회할 수 있음
select right(문자열,길이)
select right('064-000-1234',4)
CONCAT
여러 문자열을 하나로 연결할 수 있음
select concat('paul', '-', 'lab')
select concat(first_name, ',', last_name)
from `thelook_ecommerce.users`;
select 'first_name'||'last_name'
select concat(first_name, ',', last_name)
from `thelook_ecommerce.users`;
연결연산자(||)로도 연결이 가능
LOWER
문자열을 모두 소문자로 변경
select lower('Abc')
select lower(last_name)
from `thelook_ecommerce.users`;
UPPER
문자열을 모두 대문자로 변경
select upper('Abc')
INITCAP
앞에 문자만 대문자로 만들어 줌
select upper('Abc')
REPLACE
바꾸고 싶은 값으로 대상 값을 교체
select replace('hello world', 'world', 'sql')
select replace(gender, 'M', 'Man')
from `thelook_ecommerce.users`;
LENGTH
문자열의 길이를 출력 -> COUNT와 비교해서 기억
select length('hello world')
select length(first_name)
from `thelook_ecommerce.users`;
INSTR
문자열의 위치를 구함 -> 여기서 INDEX 는 1부터 시작
프로그래밍 언어는 0부터 시작
select left(email, instr('abcdef@gmail.com','@') - 1)
from `thelook_ecommerce.users`
IFNULL
IFNULL은 해당 칼럼에 NULL값이 있는 경우 다른 값으로 채워 넣을 수 있음
select IFNULL(name, '담당자 지정 안됨')
from `weniv.weniv_event`
형변환
문자 -> 숫자
- 문자 -> 자연수(integer)
- 문자 -> float
숫자 -> 문자열
- 숫자(integer) -> 문자
- 숫자(float) -> 문자
- true, false -> 문자
날짜
날짜 타입 : DATE / DATETIME
문자열 -> DATE
문자열 -> DATETIME
# CAST(데이터 AS 타입명)
# 문자열 -> 숫자로 바꾸는거
# 문자열 -> 자연수(INTEGER)
# 문자열 -> FLOAT
select CAST('123' AS INT64)
select '123' + '123' # 에러
select CAST('123' AS INT64) + CAST('123' AS INT64)
select CAST('123.123' AS FLOAT64)
select CAST('123' AS NUMERIC)
select CAST('123.123' AS NUMERIC)
# -> 문자열
# 숫자(INTEGER) -> 문자
# 숫자(FLOAT) -> 문자
# true, false -> 문자
select CAST(123 AS STRING)
select CAST(123.123 AS STRING)
select CAST(true AS STRING)
select CAST(false AS STRING)
select CAST(NULL AS STRING)
'AI SCHOOL > SQL' 카테고리의 다른 글
[SQL] 날짜 함수 (1) | 2023.01.25 |
---|---|
[SQL] 숫자, 문자열 함수, 날짜 함수 연습문제(프로그래머스) (0) | 2023.01.25 |
[SQL] HAVING, ORDER BY (0) | 2023.01.20 |
[SQL] GROUP BY, 집계함수 (0) | 2023.01.20 |
[SQL] WHERE / 비교연산자 / 논리연산 / BETWEEN / IN / LIKE / IS NULL (0) | 2023.01.13 |