FORMAT_STRING_TEMPLATE
FORMAT_STRING_TEMPLATE
자리 표시자를 값으로 치환해 문자열을 포맷하며, 타입을 인식하는 문자열 보간(interpolation)을 제공해요. 이 함수는 다른 프로그래밍 언어의 포맷된 문자열 리터럴과 유사하게, 타입이 지정된 포맷 사양으로 템플릿 문자열을 구성할 수 있게 해요.
본문
구문
FORMAT_STRING_TEMPLATE( <template_string> , <value1> [ , <value2> ... ] )
인자
- 포맷된 값으로 대체되는 자리 표시자를 포함하는 문자열이에요. 자리 표시자는 선택적 포맷 사양과 함께 중괄호
{}를 사용해요. - 템플릿 문자열에 대체할 하나 이상의 값이에요. 값은 순서대로 자리 표시자와 일치해요. 함수는 숫자, 문자열, 날짜 및 기타 Snowflake 데이터 타입에 대한 완전한 타입 처리를 지원해요.
반환 값
모든 자리 표시자가 해당 값으로 대체된 포맷된 문자열을 포함하는 VARCHAR를 반환해요.
사용상 주의사항
- 템플릿 문자열의 자리 표시자는 중괄호
{}를 사용하고, 순서대로 해당 인자로 대체돼요. - 자리 표시자 안의 포맷 사양은 값이 포맷되는 방식을 제어해요(예: 숫자 정밀도, 패딩, 정렬).
{:L}로케일 플래그는 지원되지 않으며, 사용하면 오류가 발생해요.- 자리 표시자 수가 제공된 값의 수와 일치하지 않으면 함수는 오류를 반환해요.
예시
기본적인 문자열 보간.
SELECT FORMAT_STRING_TEMPLATE('Hello, {}!', 'World');
+------------------------------------------------+
| FORMAT_STRING_TEMPLATE('HELLO, {}!', 'WORLD') |
|------------------------------------------------|
| Hello, World! |
+------------------------------------------------+
여러 값을 포맷해요.
SELECT FORMAT_STRING_TEMPLATE('{} has {} apples', 'Alice', 5);
+--------------------------------------------------------+
| FORMAT_STRING_TEMPLATE('{} HAS {} APPLES', 'ALICE', 5) |
|--------------------------------------------------------|
| Alice has 5 apples |
+--------------------------------------------------------+
숫자를 정밀도로 포맷해요.
SELECT FORMAT_STRING_TEMPLATE('Pi is approximately {:.2f}', 3.14159);
+--------------------------------------------------------------------+
| FORMAT_STRING_TEMPLATE('PI IS APPROXIMATELY {:.2F}', 3.14159) |
|--------------------------------------------------------------------|
| Pi is approximately 3.14 |
+--------------------------------------------------------------------+
테이블 데이터와 함께 사용해요.
CREATE OR REPLACE TABLE products (name VARCHAR, price NUMBER(10,2), quantity NUMBER);
INSERT INTO products VALUES
('Widget', 19.99, 100),
('Gadget', 49.95, 50);
SELECT FORMAT_STRING_TEMPLATE('Product: {} - Price: ${:.2f} - Stock: {}', name, price, quantity) AS product_info
FROM products;
+----------------------------------------------------+
| PRODUCT_INFO |
|----------------------------------------------------|
| Product: Widget - Price: $19.99 - Stock: 100 |
| Product: Gadget - Price: $49.95 - Stock: 50 |
+----------------------------------------------------+