보이는 것과 저장된 것의 차이가 존재한다.
예) 빈 값 : " "일 수도 있고, NULL일 수도 있다
1 : 숫자 1일 수도 있고, 문자 1일 수도 있다
2023-12-31 : DATE 2023-12-31일 수도 있고, 문자 2023-12-31일 수도 있다
=> 생각했던 타입과 다른 경우, 데이터 타입을 변경해야 한다
CAST : 자료 타입을 변경하는 함수
#숫자 1을 문자 1로 변경하기
SELECT
--CAST(1 AS STRING)
SAFE_ : 더 안전하게 데이터 타입 변경
=> SAFE__가 붙은 함수는 변환이 실패할 경우 NULL을 반환
=> 데이터를 NULL값으로 두는 것이 더 편할 때 사용하기 유용하다
예시1) 자료 타입 변경이 불가능한 경우
SELECT
--CAST("안녕하세요" AS INT64)
-> 오류 발생
SELECT
--SAFE_CAST("안녕하세요" AS INT64)
-> NULL을 반환
..
예시2) 수학 함수에 적용하는 경우
x = 3, y = 0 일 때
x / y
-> zero error 발생 : x, y 중 하나라도 0인 경우
SAFE_DIVIDE(x, y)
-> NULL을 반환