변환 함수
변환 함수 (Conversion functions)
타입 변환과 값 포맷팅을 다루는 함수들이에요. 숫자·문자 값을 올바른 타입으로 바꾸거나 문자열을 특정 형식으로 만들 때 써요.
출처: 문서
본문
Trino는 가능하다면 숫자 값과 문자 값을 올바른 타입으로 암시적으로 변환해요. 하지만 문자 타입과 숫자 타입 사이는 변환하지 않아요. 예를 들어 varchar를 기대하는 쿼리는 bigint 값을 그에 해당하는 varchar로 자동 변환하지 않아요.
필요할 때는 값을 특정 타입으로 명시적으로 캐스팅할 수 있어요.
변환 함수 (Conversion functions)
cast(value AS type) → type
값을 타입으로 명시적으로 캐스팅해요. varchar를 숫자 값 타입으로, 또는 그 반대로 캐스팅하는 데 쓸 수 있어요.
try_cast(value AS type) → type
cast()와 비슷하지만, 캐스팅에 실패하면 null을 반환해요.
포맷팅 (Formatting)
format(format, args...) → varchar
지정한 형식 문자열과 인자들을 사용해 포맷된 문자열을 반환해요.
SELECT format('%s%%', 123);
-- '123%'
SELECT format('%.5f', pi());
-- '3.14159'
SELECT format('%03d', 8);
-- '008'
SELECT format('%,.2f', 1234567.89);
-- '1,234,567.89'
SELECT format('%-7s,%7s', 'hello', 'world');
-- 'hello , world'
SELECT format('%2$s %3$s %1$s', 'a', 'b', 'c');
-- 'b c a'
SELECT format('%1$tA, %1$tB %1$te, %1$tY', date '2006-07-04');
-- 'Tuesday, July 4, 2006'
format_number(number) → varchar
단위 기호를 사용해 포맷된 문자열을 반환해요.
SELECT format_number(123456); -- '123K'
SELECT format_number(1000000); -- '1M'
데이터 크기 (Data size)
parse_data_size 함수는 다음 단위를 지원해요.
| 단위 | 설명 | 값 |
|---|---|---|
B |
바이트 (Bytes) | 1 |
kB |
킬로바이트 (Kilobytes) | 1024 |
MB |
메가바이트 (Megabytes) | 1024² |
GB |
기가바이트 (Gigabytes) | 1024³ |
TB |
테라바이트 (Terabytes) | 1024⁴ |
PB |
페타바이트 (Petabytes) | 1024⁵ |
EB |
엑사바이트 (Exabytes) | 1024⁶ |
ZB |
제타바이트 (Zettabytes) | 1024⁷ |
YB |
요타바이트 (Yottabytes) | 1024⁸ |
parse_data_size(string)
value unit 형식의 string을 숫자로 파싱해요. 여기서 value는 unit 값들의 분수(fractional) 개수예요.
SELECT parse_data_size('1B'); -- 1
SELECT parse_data_size('1kB'); -- 1024
SELECT parse_data_size('1MB'); -- 1048576
SELECT parse_data_size('2.3MB'); -- 2411724
기타 (Miscellaneous)
typeof(expr) → varchar
주어진 표현식의 타입 이름을 반환해요.
SELECT typeof(123); -- integer
SELECT typeof('cat'); -- varchar(3)
SELECT typeof(cos(2) + 1.5); -- double
더 알아보기 (Learn more)
타입 캐스팅과 관련된 더 자세한 규칙은 Trino의 타입 문서를 참고해 보세요.