일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오피스텔투자
- 전세보증보험
- 오라클 데이터베이스 내장함수
- 다주택임대
- chatgpt 100% 신뢰금지
- 가장 인기있는 파이썬 라이브러리
- PostgreSQL
- bard 100% 신뢰금지
- 공개서적
- Google vs MicorSoft
- chatgpt vs bard
- 종합소득세
- 가장 많이 사용되는 파이썬 라이브러리
- 데이터 리터러시
- 갤럭시탭 with Pen
- 종합과세
- 가장 많이 사용되는 파이썬 패키지
- Google vs OpenAI
- 주택임대사업자
- Python
- 상업시설용지 분양
- 소형주택 세액감면
- 가장 인기있는 파이썬 패키지
- 2룸 오피스텔 투자
- 임대소득외 추가소득이 있을 경우
- 파이썬 TypeError
- 나는 어디로?
- 주상복합용지 분양
- 라이브러리 vs 패키지
- robux
All thing of the world!
Postgresql format 설명 : 포스트그레스큐엘 함수 본문
1. 함수의 목적
Postgresql format 함수는 C의 sprint함수의 기능과 유사한 기능을 한다. 변수에 텍스트를 할당하면 그에 맞는 포맷으로 출력된다. 실제 업무에서는 다이나믹 sql 작성시 유용하게 사용가능하다. (문서 최하단 샘플 참조)
2. 샘플을 통한 개념 퀵뷰
SELECT format('Hello %s', 'World');
Result:
Hello World
3. 사용방법
format(formatstr text [, formatarg "any" [, ...] ])
4. 함수 PARAMETER 설명
[formatstr text]
formatstr은 결과의 형식을 지정하는 형식 문자열이다.
fotmatstr은 %[position][flags][width]type형식으로 지정되며, 각 형식의 상세 설명은 아래와 같다.
position (선택)
숫자형식으로 표현하며 가져올 인수의 인덱스이다. 인덱스 1로 지정한다면, formatstr 다음의 첫 번째 인수를 의미한다. 위치가 생략된 경우 formatarg에 지정된 순서대로 할당된다.
flags (선택)
숫자에 -를 붙일 경우 왼쪽 정렬이고, 아무것도 붙이지 않을 경우 오른쪽으로 정렬된다.
width (선택)
출력할 공간(넓이)를 지정한다.
type (필수)
출력형식 변환 유형을 지정한다.
- s 스트링 포맷으로 지정, null은 빈 문자열로 취급
- I 인수 값을 sql 식별자로 취급, null이면 오류
- L 인수 값을 sql 리터럴로 취급, null은 'NULL'로 변환 출력
[formatarg "any"]
formatarg 인수는 fotmatstr에 할당되어 변환될 문자열의 인수이며, ','로 구분하여 공급한다.
5. 다양한 샘플 표현
1) 기본적인 포맷
SELECT format('Testing %s, %s, %s, %%', 'one', 'two', 'three');
Result: Testing one, two, three
SELECT format('INSERT INTO %I VALUES(%L)', 'Foo bar', E'O\'Reilly');
Result: INSERT INTO "Foo bar" VALUES('O''Reilly')
SELECT format('INSERT INTO %I VALUES(%L)', 'locations', 'C:\Program Files');
Result: INSERT INTO locations VALUES('C:\Program Files')
2) width 와 - flag를 지정한 샘플
SELECT format('|%10s|', 'foo');
Result: | foo|
SELECT format('|%-10s|', 'foo');
Result: |foo |
SELECT format('|%*s|', 10, 'foo');
Result: | foo|
SELECT format('|%*s|', -10, 'foo');
Result: |foo |
SELECT format('|%-*s|', 10, 'foo');
Result: |foo |
SELECT format('|%-*s|', -10, 'foo');
Result: |foo |
3) position을 지정한 샘플
SELECT format('Testing %3$s, %2$s, %1$s', 'one', 'two', 'three');
Result: Testing three, two, one
SELECT format('|%*2$s|', 'foo', 10, 'bar');
Result: | bar|
SELECT format('|%1$*2$s|', 'foo', 10, 'bar');
Result: | foo|
4) %I나 %L type을 사용하여 안전한 다이나믹 sql을 구성한 샘플
EXECUTE format('UPDATE tbl SET %I = %L WHERE key = %L', colname, newvalue, keyvalue);
EXECUTE format('UPDATE tbl SET %I = $1 WHERE key = $2', colname) USING newvalue, keyvalue;
'IT > Postgresql DBMS' 카테고리의 다른 글
Postgresql pg_cancel_backend 설명 : 포스트그레스큐엘 함수 (0) | 2021.04.13 |
---|---|
Postgresql current_setting 설명 : 포스트그레스큐엘 함수 (0) | 2021.04.12 |
Postgresql current_setting 설명 : 포스트그레스큐엘 함수 (0) | 2021.04.12 |
Postgresql xmlconcat 설명 : 포스트그레스큐엘 함수 (0) | 2021.04.10 |
Postgresql xmlcomment 설명 : 포스트그레스큐엘 함수 (0) | 2021.04.10 |