FORMAT_STRING_TEMPLATE

FORMAT_STRING_TEMPLATE

자리 표시자를 값으로 치환해 문자열을 포맷하며, 타입을 인식하는 문자열 보간(interpolation)을 제공해요. 이 함수는 다른 프로그래밍 언어의 포맷된 문자열 리터럴과 유사하게, 타입이 지정된 포맷 사양으로 템플릿 문자열을 구성할 수 있게 해요.

출처: Snowflake SQL Reference - FORMAT_STRING_TEMPLATE

본문

구문

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       |
+----------------------------------------------------+

더 알아보기