이 섹션에서는 토토 값을 검사하고 조작하기위한 기능 및 연산자를 설명합니다. 이 맥락에서 토토에는 유형의 값이 포함됩니다문자
, 캐릭터 다양한
및텍스트
. 달리 명시되지 않는 한, 아래 나열된 모든 기능은 이러한 모든 유형에 대해 작동하지만를 사용할 때 자동 공간 패딩의 잠재적 영향에주의하십시오.캐릭터
타입. 일부 기능은 비트 스트링 유형에 기본적으로 존재합니다.
SQL쉼표가 아닌 핵심 단어를 사용하여 인수를 분리하는 일부 문자열 함수를 정의합니다. 세부 사항은표 9.9. PostgreSQL일반 함수 호출 구문을 사용하는 이러한 기능의 버전을 제공합니다 (참조표 9.10).
전PostgreSQL8.3, 이러한 기능은 해당 데이터 유형에서 암시 적 강요가 존재하기 때문에 여러 비 스트링 데이터 유형의 값도 조용히 받아 들일 것입니다.텍스트
. 이러한 강요는 종종 놀라운 행동을 일으켰기 때문에 제거되었습니다. 그러나 문자열 연결 연산자 (||
)는 여전히 비 스트링 입력을 허용합니다. 적어도 하나의 입력이 문자열 유형 인 한표 9.9. 다른 경우에는 명시 적 강요 삽입텍스트
이전 동작을 복제 해야하는 경우
표 9.9. SQL문자열 함수 및 연산자
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
|
텍스트 |
문자열 연결 | 'post'|| 'gresql' |
postgresql |
또는
|
텍스트 |
하나의 비 스트링 입력과의 문자열 연결 | '값 :'|| 42 |
값 : 42 |
|
int |
String의 비트 수 | bit_length ( 'Jose') |
32 |
또는
|
int |
문자열의 문자 수 | char_length ( 'Jose') |
4 |
|
텍스트 |
문자열을 소문자로 변환 | Lower ( 'Tom') |
Tom |
|
int |
문자열의 바이트 수 | Octet_length ( 'Jose') |
4 |
|
텍스트 |
기판 교체 | 오버레이 ( 'txxxxas' 'hom'을 2 for 4) |
Thomas |
|
int |
지정된 기판의 위치 | 위치 ( '토마스'의 'om') |
3 |
|
텍스트 |
추출 하부 스트링 | 서브 스트링 ( 'Thomas'는 2 for 3 for 3) |
hom |
|
텍스트 |
POSIX 정규 표현식을 일치시키는 기판 추출. 보다롤 토토 PostgreSQL : 문서 : 12 : 9.7. 패턴 매칭패턴 매칭에 대한 자세한 내용은 | 서브 스트링 ( '토마스'에서 '... $') |
mas |
|
텍스트 |
기판 매칭 추출SQL정규 표현. 보다롤 토토 PostgreSQL : 문서 : 12 : 9.7. 패턴 매칭패턴 매칭에 대한 자세한 내용은 | Substring ( '#'#'for'#'_' |
OMA |
|
텍스트 |
문자 만 포함하는 가장 긴 문자열을 제거문자 (기본적으로 공간) 시작, 끝 또는 양쪽 끝에서 (둘 다 기본값)의String |
트림 ( 'yxtomxx'에서 'xyz') |
Tom |
|
텍스트 |
비표준 구문에 대한trim () |
트림 ( 'yxtomxx', 'xyz') |
Tom |
|
텍스트 |
문자열을 대문자로 변환 | 어퍼 ( 'tom') |
Tom |
추가 문자열 조작 함수를 사용할 수 있으며에 나열되어 있습니다.표 9.10. 그들 중 일부는 내부적으로 사용되어SQL-스탠드 문자열 함수에 나열표 9.9.
표 9.10. 기타 문자열 함수
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
|
int |
ASCII인수의 첫 번째 문자의 코드. 을 위한UTF8문자의 유니 코드 코드 포인트를 반환합니다. 다른 멀티 바이트 인코딩의 경우 인수는이어야합니다.ASCII문자. | ascii ( 'x') |
120 |
|
텍스트 |
문자로만 구성된 가장 긴 문자열 제거문자 (기본적으로 공간)의 시작과 끝에서String |
btrim ( 'xyxtrimyyx', 'xyz') |
TRIM |
|
텍스트 |
주어진 코드가있는 문자. 을 위한UTF8인수는 유니 코드 코드 포인트로 취급됩니다. 다른 멀티 바이트 인코딩의 경우 인수는 an을 지정해야합니다ASCII문자. 텍스트 데이터 유형이 그러한 바이트를 저장할 수 없기 때문에 NULL (0) 문자는 허용되지 않습니다. | chr (65) |
a |
|
텍스트 |
모든 인수의 텍스트 표현을 연결하십시오. 널 인수는 무시됩니다. | concat ( 'abcde', 2, null, 22) |
ABCDE222 |
|
텍스트 |
분리기와의 첫 번째 인수를 제외한 모든 것을 연결합니다. 첫 번째 인수는 분리기 문자열로 사용됩니다. 널 인수는 무시됩니다. | concat_ws ( ',', ','abcde ', 2, null, 22) |
abcde, 2,22 |
|
BYTEA |
문자열 변환dest_encoding . 원래 인코딩은에 의해 지정됩니다.src_encoding . 그만큼String 이 인코딩에서 유효해야합니다. 전환은에 의해 정의 될 수 있습니다.변환 생성 . 또한 사전 정의 된 전환이 있습니다. 보다표 9.11사용 가능한 전환. |
convert ( 'text_in_utf8', 'utf8', 'latin1') |
text_in_utf8 라틴 -1 인코딩 (ISO 8859-1)에서 표현 |
|
텍스트 |
문자열을 데이터베이스 인코딩으로 변환합니다. 원래 인코딩은에 의해 지정됩니다.src_encoding . 그만큼String 이 인코딩에서 유효해야합니다. |
convert_from ( 'text_in_utf8', 'utf8') |
text_in_utf8 현재 데이터베이스 인코딩에 표시 |
|
BYTEA |
문자열 변환dest_encoding . |
convert_to ( 'some text', 'utf8') |
일부 텍스트 UTF8 인코딩에 표시 |
|
BYTEA |
텍스트 표현에서 바이너리 데이터를 디코딩하여String . 옵션형식 Encode . |
decode ( 'mtizaae =', 'base64') |
\ x3132330001 |
|
텍스트 |
이진 데이터를 텍스트 표현으로 인코딩합니다. 지원되는 형식은 다음과 같습니다.Base64 , hex , 탈출 . 탈출 제로 바이트와 비트 세트 바이트를 Octal 시퀀스로 변환합니다 (\ NNN ) 및 두 배의 백 슬래시. |
Encode ( '123 \ 000 \ 001', 'base64') |
mtizaae = |
|
텍스트 |
형식 문자열에 따른 형식 인수. 이 기능은 C 함수와 유사합니다Sprintf . 보다섹션 9.4.1. |
형식 ( 'hello %s, %1 $ s', 'world') |
Hello World, World |
|
텍스트 |
각 단어의 첫 글자를 대문자로, 나머지는 소문자로 변환합니다. 단어는 비 alphanumeric 문자로 분리 된 영숫자 문자의 시퀀스입니다. | InitCap ( 'Hi Thomas') |
Hi Thomas |
|
텍스트 |
먼저 반환n 문자열의 문자. 언제n 부정적입니다. 마지막으로 반환 |n | 캐릭터. |
왼쪽 ( 'abcde', 2) |
AB |
|
int |
문자 수String |
길이 ( 'Jose') |
4 |
|
int |
문자 수String 주어진인코딩 . 그만큼String 이 인코딩에서 유효해야합니다. |
길이 ( 'Jose', 'utf8') |
4 |
|
텍스트 |
채우기String 길이길이 캐릭터를 선출하여fill (기본적으로 공간). 인 경우String 이미보다 길다길이 그런 다음 오른쪽에 자르고 있습니다. |
lpad ( 'hi', 5, 'xy') |
xyxhi |
|
텍스트 |
문자 만 포함하는 가장 긴 문자열을 제거합니다캐릭터 (기본적으로 공간) 시작부터String |
ltrim ( 'zzzytest', 'xyz') |
테스트 |
|
텍스트 |
MD5 해시 계산String , 결과를 16 진수로 반환 |
MD5 ( 'ABC') |
900150983CD24FB0 D6963F7D28E17F72 |
|
텍스트 [] |
분할Qualified_Ingifier 개별 식별자의 인용을 제거하는 다양한 식별자 배열로. 기본적으로 마지막 식별자 후 추가 문자는 오류로 간주됩니다. 그러나 두 번째 매개 변수가이면거짓 , 그러한 추가 문자는 무시됩니다. (이 동작은 함수와 같은 객체의 이름을 구문 분석하는 데 유용합니다.)이 함수는 오버 길이 식별자를 자르지 않습니다. 잘림을 원한다면 결과를이름 [] . |
parse_ident ( ' "someschema".sometable') |
someschema, someable |
|
이름 |
현재 클라이언트 인코딩 이름 | pg_client_encoding () |
SQL_ASCII |
|
텍스트 |
주어진 문자열을 반환SQL문자열. 따옴표는 필요한 경우에만 추가됩니다 (즉, 문자열에 비 식별자 문자가 포함되어 있거나 케이스 폴드가있는 경우). 내장 된 인용문이 제대로 두 배가됩니다. 참조 참조예 42.1. | quote_ident ( 'foo bar') |
"Foo Bar" |
|
텍스트 |
주어진 문자열을 반환SQL문자열. 내장 단일 크기와 백 슬래시가 제대로 두 배가됩니다. 참고quote_literal NULL 입력에서 NULL을 반환합니다. 인수가 무효 일 수 있다면QUOTE_NULLABLE 가 종종 더 적합합니다. 참조 참조예 42.1. |
quote_literal (e'o \ 'reilly') |
'O''Reilly' |
|
텍스트 |
주어진 값을 텍스트로 강요 한 다음 문자로 인용하십시오. 내장 된 단일 크기 및 백 슬래시가 제대로 두 배가됩니다. | quote_literal (42.5) |
'42 .5 ' |
|
텍스트 |
주어진 문자열을 반환SQL문자열; 또는 인수가 무인 상태 인 경우 retoyNULL . 내장 단일 크기와 백 슬래시가 제대로 두 배가됩니다. 참조 참조예 42.1. |
quote_nullable (null) |
NULL |
|
텍스트 |
주어진 값을 텍스트로 강요 한 다음 문자로 인용하십시오. 또는 인수가 무인 상태 인 경우 retoyNULL . 내장 된 단일 크기 및 백 슬래시가 제대로 두 배가됩니다. |
QUOTE_NULLABLE (42.5) |
'42 .5 ' |
|
텍스트 [] |
POSIX 정규 표현식의 첫 번째 일치로 인한 캡처 된 하위 문자열 |String . 보다섹션 9.7.3자세한 내용은 |
regexp_match ( 'foobarbequebaz', '(bar)'(beque) ') |
bar, beque |
|
텍스트 설정 [] |
POSIX 정규 표현식과 일치하는 캡처 된 기판 (들)은String . 보다섹션 9.7.3자세한 내용은 |
regexp_matches ( 'foobarbequebaz', 'ba.', 'g') |
bar
|
|
텍스트 |
POSIX 정규 표현식과 일치하는 하위 문자열 교체. 보다섹션 9.7.3자세한 내용은 | regexp_replace ( 'Thomas', '. [mn] a.', 'm') |
THM |
|
텍스트 [] |
분할String POSIX 정규 표현식을 구분 기자로 사용합니다. 보다섹션 9.7.3자세한 내용은 |
regexp_split_to_array ( 'Hello World', '\ s+') |
hello, world |
|
텍스트 설정 |
분할String POSIX 정규 표현식을 구분기로 사용합니다. 보다섹션 9.7.3자세한 내용은 |
regexp_split_to_table ( 'Hello World', '\ s+') |
hello
|
|
텍스트 |
반복String 지정된번호 of Times |
반복 ( 'PG', 4) |
pgpgpgpg |
|
텍스트 |
String of substringFrom with substringto |
교체 ( 'abcdefabcdef', 'cd', 'xx') |
abxxefabxxef |
|
텍스트 |
리턴 리버스 스트링. | Reverse ( 'abcde') |
edcba |
|
텍스트 |
마지막으로 반환n 문자열의 문자. 언제n 부정적입니다. 첫 번째를 제외한 모든 것을 반환 |n | 캐릭터. |
오른쪽 ( 'abcde', 2) |
de |
|
텍스트 |
채우기String 길이길이 문자를 추가하여fill (기본적으로 공간). 인 경우String 이미보다길이 그런 다음 잘 렸습니다. |
rpad ( 'hi', 5, 'xy') |
hixyx |
|
텍스트 |
문자 만 포함하는 가장 긴 문자열 제거캐릭터 (기본적으로 공간) 끝까지String |
rtrim ( 'testxxzx', 'xyz') |
테스트 |
|
텍스트 |
분할String onDelimiter 주어진 필드를 반환합니다 (1에서 계산) |
split_part ( 'abc ~@~ def ~@~ ghi', '~@~', 2) |
def |
|
int |
지정된 서브 스트링의 위치 (동일위치 ( , 그러나 반대로 인수 순서에 주목하십시오) |
strpos ( 'high', 'ig') |
2 |
|
텍스트 |
추출 하부 스트링 (동일Substring ( ) |
서브 스트 ( '알파벳', 3, 2) |
PH |
|
bool |
진실을 반환합니다String 시작prefix . |
Starting_with ( '알파벳', '알프') |
T |
|
텍스트 |
ConvertString toASCII다른 인코딩에서 (에서만 지원합니다latin1 , latin2 , latin9 및Win1250 인코딩) |
TO_ASCII ( 'Karel') |
Karel |
|
텍스트 |
Convert번호 동등한 16 진수 표현 |
TO_HEX (2147483647) |
7fffffff |
|
텍스트 |
모든 캐릭터String From 세트는의 해당 문자로 대체됩니다.to 세트. 만약에From 보다 길다to , 추가 문자의 발생From 제거되었습니다. |
번역 ( '12345', '143', 'ax') |
A2X5 |
theconcat
, concat_ws
and형식
함수는 변수이므로 값을 연결하거나 형식으로 표시 할 값을로 전달할 수 있습니다variadic
키워드 (참조섹션 37.5.5). 배열의 요소는 마치 함수에 대한 일반적인 인수 인 것처럼 취급됩니다. variadic 어레이 인수가 null 인 경우concat
및concat_ws
return null이지만형식
널을 제로 요소 배열로 취급합니다.
집계 함수 참조String_agg
inPostgreSQL : 문서 : 12 : 9.20. 윈 토토 기능.
표 9.11. 내장 변환
변환 이름[a] | 소스 인코딩 | 대상 인코딩 |
---|---|---|
ASCII_TO_MIC |
SQL_ASCII |
mule_internal |
ascii_to_utf8 |
SQL_ASCII |
UTF8 |
big5_to_euc_tw |
big5 |
EUC_TW |
big5_to_mic |
big5 |
mule_internal |
big5_to_utf8 |
big5 |
UTF8 |
EUC_CN_TO_MIC |
EUC_CN |
mule_internal |
euc_cn_to_utf8 |
EUC_CN |
UTF8 |
euc_jp_to_mic |
EUC_JP |
mule_internal |
euc_jp_to_sjis |
EUC_JP |
SJIS |
euc_jp_to_utf8 |
EUC_JP |
UTF8 |
euc_kr_to_mic |
EUC_KR |
mule_internal |
euc_kr_to_utf8 |
EUC_KR |
UTF8 |
EUC_TW_TO_BIG5 |
EUC_TW |
big5 |
euc_tw_to_mic |
EUC_TW |
mule_internal |
euc_tw_to_utf8 |
EUC_TW |
UTF8 |
GB18030_TO_UTF8 |
GB18030 |
UTF8 |
gbk_to_utf8 |
GBK |
UTF8 |
ISO_8859_10_TO_UTF8 |
latin6 |
UTF8 |
ISO_8859_13_TO_UTF8 |
latin7 |
UTF8 |
ISO_8859_14_TO_UTF8 |
latin8 |
UTF8 |
ISO_8859_15_TO_UTF8 |
latin9 |
UTF8 |
ISO_8859_16_TO_UTF8 |
latin10 |
UTF8 |
ISO_8859_1_TO_MIC |
latin1 |
mule_internal |
ISO_8859_1_TO_UTF8 |
latin1 |
UTF8 |
ISO_8859_2_TO_MIC |
latin2 |
mule_internal |
ISO_8859_2_TO_UTF8 |
latin2 |
UTF8 |
iso_8859_2_to_windows_1250 |
latin2 |
Win1250 |
ISO_8859_3_TO_MIC |
latin3 |
mule_internal |
ISO_8859_3_TO_UTF8 |
latin3 |
UTF8 |
ISO_8859_4_TO_MIC |
latin4 |
mule_internal |
ISO_8859_4_TO_UTF8 |
latin4 |
UTF8 |
ISO_8859_5_TO_KOI8_R |
ISO_8859_5 |
Koi8R |
ISO_8859_5_TO_MIC |
ISO_8859_5 |
mule_internal |
ISO_8859_5_TO_UTF8 |
ISO_8859_5 |
UTF8 |
iso_8859_5_to_windows_1251 |
ISO_8859_5 |
Win1251 |
iso_8859_5_to_windows_866 |
ISO_8859_5 |
Win866 |
ISO_8859_6_TO_UTF8 |
ISO_8859_6 |
UTF8 |
ISO_8859_7_TO_UTF8 |
ISO_8859_7 |
UTF8 |
ISO_8859_8_TO_UTF8 |
ISO_8859_8 |
UTF8 |
ISO_8859_9_TO_UTF8 |
latin5 |
UTF8 |
johab_to_utf8 |
Johab |
UTF8 |
KOI8_R_TO_SO_ISO_8859_5 |
Koi8R |
ISO_8859_5 |
KOI8_R_TO_MIC |
KOI8R |
mule_internal |
KOI8_R_TO_UTF8 |
KOI8R |
UTF8 |
KOI8_R_TO_WINDOWS_1251 |
Koi8R |
Win1251 |
KOI8_R_TO_WINDOWS_866 |
KOI8R |
Win866 |
KOI8_U_TO_UTF8 |
Koi8U |
UTF8 |
MIC_TO_ASCII |
mule_internal |
SQL_ASCII |
MIC_TO_BIG5 |
mule_internal |
big5 |
MIC_TO_EUC_CN |
mule_internal |
EUC_CN |
MIC_TO_EUC_JP |
mule_internal |
EUC_JP |
MIC_TO_EUC_KR |
mule_internal |
EUC_KR |
MIC_TO_EUC_TW |
mule_internal |
EUC_TW |
MIC_TO_ISO_8859_1 |
mule_internal |
latin1 |
MIC_TO_ISO_8859_2 |
mule_internal |
latin2 |
MIC_TO_ISO_8859_3 |
mule_internal |
latin3 |
MIC_TO_ISO_8859_4 |
mule_internal |
latin4 |
MIC_TO_ISO_8859_5 |
mule_internal |
ISO_8859_5 |
MIC_TO_KOI8_R |
mule_internal |
KOI8R |
MIC_TO_SJIS |
mule_internal |
SJIS |
MIC_TO_WINDOWS_1250 |
mule_internal |
Win1250 |
MIC_TO_WINDOWS_1251 |
mule_internal |
Win1251 |
MIC_TO_WINDOWS_866 |
mule_internal |
Win866 |
sjis_to_euc_jp |
SJIS |
EUC_JP |
sjis_to_mic |
SJIS |
mule_internal |
sjis_to_utf8 |
SJIS |
UTF8 |
Windows_1258_TO_UTF8 |
Win1258 |
UTF8 |
UHC_TO_UTF8 |
UHC |
UTF8 |
UTF8_TO_ASCII |
UTF8 |
SQL_ASCII |
UTF8_TO_BIG5 |
UTF8 |
big5 |
UTF8_TO_EUC_CN |
UTF8 |
EUC_CN |
UTF8_TO_EUC_JP |
UTF8 |
EUC_JP |
UTF8_TO_EUC_KR |
UTF8 |
EUC_KR |
UTF8_TO_EUC_TW |
UTF8 |
EUC_TW |
UTF8_TO_GB18030 |
UTF8 |
GB18030 |
UTF8_TO_GBK |
UTF8 |
GBK |
UTF8_TO_ISO_8859_1 |
UTF8 |
latin1 |
UTF8_TO_ISO_8859_10 |
UTF8 |
latin6 |
UTF8_TO_ISO_8859_13 |
UTF8 |
latin7 |
UTF8_TO_ISO_8859_14 |
UTF8 |
latin8 |
UTF8_TO_ISO_8859_15 |
UTF8 |
latin9 |
UTF8_TO_ISO_8859_16 |
UTF8 |
latin10 |
UTF8_TO_ISO_8859_2 |
UTF8 |
latin2 |
UTF8_TO_ISO_8859_3 |
UTF8 |
latin3 |
UTF8_TO_ISO_8859_4 |
UTF8 |
latin4 |
UTF8_TO_ISO_8859_5 |
UTF8 |
ISO_8859_5 |
UTF8_TO_ISO_8859_6 |
UTF8 |
ISO_8859_6 |
UTF8_TO_ISO_8859_7 |
UTF8 |
ISO_8859_7 |
UTF8_TO_ISO_8859_8 |
UTF8 |
ISO_8859_8 |
UTF8_TO_ISO_8859_9 |
UTF8 |
latin5 |
UTF8_TO_JOHAB |
UTF8 |
Johab |
UTF8_TO_KOI8_R |
UTF8 |
Koi8R |
UTF8_TO_KOI8_U |
UTF8 |
Koi8U |
UTF8_TO_SJIS |
UTF8 |
SJIS |
UTF8_TO_WINDOWS_1258 |
UTF8 |
Win1258 |
UTF8_TO_UHC |
UTF8 |
UHC |
UTF8_TO_WINDOWS_1250 |
UTF8 |
Win1250 |
UTF8_TO_WINDOWS_1251 |
UTF8 |
Win1251 |
UTF8_TO_WINDOWS_1252 |
UTF8 |
Win1252 |
UTF8_TO_WINDOWS_1253 |
UTF8 |
Win1253 |
UTF8_TO_WINDOWS_1254 |
UTF8 |
Win1254 |
UTF8_TO_WINDOWS_1255 |
UTF8 |
Win1255 |
UTF8_TO_WINDOWS_1256 |
UTF8 |
Win1256 |
UTF8_TO_WINDOWS_1257 |
UTF8 |
Win1257 |
UTF8_TO_WINDOWS_866 |
UTF8 |
Win866 |
UTF8_TO_WINDOWS_874 |
UTF8 |
Win874 |
Windows_1250_TO_SO_ISO_8859_2 |
Win1250 |
latin2 |
Windows_1250_TO_MIC |
Win1250 |
mule_internal |
Windows_1250_TO_UTF8 |
Win1250 |
UTF8 |
Windows_1251_TO_SO_ISO_8859_5 |
win1251 |
ISO_8859_5 |
Windows_1251_TO_KOI8_R |
Win1251 |
Koi8R |
Windows_1251_TO_MIC |
Win1251 |
mule_internal |
Windows_1251_TO_UTF8 |
win1251 |
UTF8 |
Windows_1251_TO_WINDOWS_866 |
Win1251 |
Win866 |
Windows_1252_TO_UTF8 |
Win1252 |
UTF8 |
Windows_1256_TO_UTF8 |
Win1256 |
UTF8 |
Windows_866_TO_SO_ISO_8859_5 |
Win866 |
ISO_8859_5 |
Windows_866_TO_KOI8_R |
Win866 |
KOI8R |
Windows_866_TO_MIC |
Win866 |
mule_internal |
Windows_866_TO_UTF8 |
Win866 |
UTF8 |
Windows_866_TO_WINDOWS_1251 |
Win866 |
WIN |
Windows_874_TO_UTF8 |
Win874 |
UTF8 |
EUC_JIS_2004_TO_UTF8 |
euc_jis_2004 |
UTF8 |
UTF8_TO_EUC_JIS_2004 |
UTF8 |
euc_jis_2004 |
shift_jis_2004_to_utf8 |
shift_jis_2004 |
UTF8 |
UTF8_TO_SHIFT_JIS_2004 |
UTF8 |
shift_jis_2004 |
EUC_JIS_2004_TO_SHIFT_JIS_2004 |
euc_jis_2004 |
shift_jis_2004 |
shift_jis_2004_to_euc_jis_2004 |
shift_jis_2004 |
euc_jis_2004 |
[A]변환 이름은 표준 이름 지정 체계를 따릅니다. |
형식
함수형식
C 함수와 유사한 스타일로 형식 문자열에 따라 형식화 된 출력 생성Sprintf
.
형식
(Formatstr
텍스트
[,Formatarg
"Any"
[, ...])
Formatstr
는 결과를 형식화하는 방법을 지정하는 형식 문자열입니다. 문자열 형식의 텍스트는 결과에 직접 복사됩니다.형식 지정자사용됩니다. 형식 지정자는 문자열의 자리 표시 자 역할을하여 후속 기능 인수를 결과에 형식화하고 삽입 해야하는 방법을 정의합니다. 각Formatarg
인수는 데이터 유형에 대한 일반적인 출력 규칙에 따라 텍스트로 변환 된 다음 형식 지정자 (s)에 따라 결과 문자열에 포맷하고 삽입됩니다..
형식 지정자는 A에 의해 소개됩니다.%
캐릭터와 양식이 있습니다
%[위치
] [플래그
] [너비
]타입
구성 요소 필드가있는 곳 :
위치
(선택 사항)양식의 문자열
어디n
$n
인쇄 할 인수의 색인입니다. 색인 1은 이후의 첫 번째 인수를 의미합니다.Formatstr
. 인 경우위치
생략되고, 기본값은 다음 인수를 순서대로 사용하는 것입니다.
플래그
(선택 사항)형식 지정자의 출력이 형식화되는 방식을 제어하는 추가 옵션. 현재 유일하게 지원되는 플래그는 마이너스 부호입니다 (-
) 형식 지정자의 출력이 좌회전하게됩니다. 이것은이 아니라면 효과가 없습니다.너비
필드도 지정되어 있습니다.
너비
(선택 사항)지정최소형식 지정자의 출력을 표시하는 데 사용할 문자 수입니다. 출력은 왼쪽 또는 오른쪽에 패딩됩니다 (-
플래그) 너비를 채우는 데 필요한 공백이 있습니다. 너무 작은 너비는 출력이 잘리지는 않지만 단순히 무시됩니다. 너비는 다음 중 하나를 사용하여 지정 될 수 있습니다. 양의 정수; 별표 (*
) 다음 함수 인수를 너비로 사용하려면; 또는 양식의 문자열*
사용하려면n
$n
TH 기능 인수는 너비로 인수합니다.
너비가 함수 인수에서 나온 경우, 그 인수는 형식 지정자의 값에 사용되는 인수 전에 소비됩니다. 너비 인수가 음수 인 경우 결과는 왼쪽으로 정렬됩니다 (마치 마치-
플래그가 지정되었습니다) 길이 필드 내에서ABS
(너비
).
타입
(필수)형식 지정자의 출력을 생성하는 데 사용할 형식 변환 유형. 다음 유형이 지원됩니다.
S
인수 값을 간단한 문자열로 형식화합니다. 널 값은 빈 문자열로 취급됩니다.
i
인수 값을 SQL 식별자로 취급하여 필요한 경우 두 번 인용합니다. 값이 null이라는 오류입니다 (QUOTE_INDEN
).
l
인수 값을 SQL 리터럴로 인용합니다. 널 값이 문자열로 표시됩니다NULL
, 인용없이 (동등한QUOTE_NULLABLE
).
위에서 설명한 형식 지정자 외에도 특수 시퀀스%%
문자를 출력하는 데 사용될 수 있습니다%
문자.
기본 형식 변환의 몇 가지 예는 다음과 같습니다.
형식 선택 ( 'hello %s', 'world');결과 :Hello World
형식을 선택하십시오 ( ' %s, %s, %s, %s,'1 ','two ','Three ');결과 :테스트 1, 2, 3, %
형식 선택 ( ' %i 값 ( %l)', 'foo bar', e'o \ 'reilly');결과 :"foo bar"값에 삽입 ( 'O''Reilly')
형식 선택 ( ' %I 값 삽입 ( %l)', '위치', 'c : \ program files';결과 :위치에 삽입 값 ( 'C : \ Program Files')
여기를 사용하는 예는입니다.너비
필드 및-
플래그 :
형식 선택 ( '|%10s |', 'foo');결과 :| foo |
형식 선택 ( '|%-10s |', 'foo');결과 :| foo |
형식 선택 ( '|%*s |', 10, 'foo');결과 :| foo |
형식 선택 ( '|%*s |', -10, 'foo');결과 :| foo |
형식 선택 ( '|%-*s |', 10, 'foo');결과 :| foo |
형식 선택 ( '|% -*s |', -10, 'foo');결과 :| foo |
이 예제는의 사용을 보여줍니다.위치
필드 :
형식 선택 ( '테스트 %3 $ S, %2 $ S, %1 $ S', '1', '2', 'Three');결과 :3, 2, 1 테스트
형식 선택 ( '|%*2 $ s |', 'foo', 10, 'bar';결과 :| 바 |
형식 선택 ( '|%1 $*2 $ s |', 'foo', 10, 'bar');결과 :| foo |
표준 C 함수와 달리Sprintf
, PostgreSQL's형식
함수는 형식 지정자가 있거나없는 형식 지정자를 허용합니다위치
동일한 형식 문자열로 혼합 할 필드. A가없는 형식 지정자위치
필드는 마지막으로 소비 된 후에 항상 다음 인수를 사용합니다. 또한형식
함수는 모든 함수 인수를 형식 문자열로 사용하지 않아도됩니다. 예를 들어:
형식을 선택하십시오 ( '테스트 %3 $ S, %2 $ s, %s', '1', 'two', 'Three');결과 :3, 2, 3 테스트
the%I
and%l
형식 지정자는 동적 SQL 문을 안전하게 구성하는 데 특히 유용합니다. 보다예 42.1.