이 섹션에서는 검사를위한 기능 및 연산자를 설명합니다 젠 토토 값을 조작합니다. 이 맥락에서 젠 토토에는 포함됩니다 모든 유형의 값캐릭터, 캐릭터 다양한및텍스트. 달리 언급되지 않는 한, 모든 기능 아래에 나열된 모든 유형에서 작업하지만 잠재력에주의하십시오. 사용시 자동 패딩의 효과문자타입. 일반적으로 설명 된 기능 여기에서는 비 스트링 유형의 데이터에 대해서도 작동합니다. 먼저 문자열 표현에 대한 데이터. 일부 기능도 존재합니다 비트 스트링 유형에 대해 기본적으로.
SQL일부 문자열을 정의합니다 특정 키 단어가 오히려 특수 구문과 기능 쉼표는 인수를 분리하는 데 사용됩니다. 세부 사항은테이블 9-5. 이러한 기능은 정규를 사용하여 구현됩니다 기능 호출에 대한 구문. (보다테이블 9-6.)
표 9-5.SQL문자열 함수 및 연산자
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
String || String | 텍스트 | 문자열 연결 | 'post'|| 'gresql' | PostgreSQL |
bit_length (String) |
int | 문자열의 비트 수 | bit_length ( 'Jose') | 32 |
char_length (String)또는문자 _length (String) |
int | 문자열의 문자 수 | char_length ( 'Jose') | 4 |
Convert (String사용converion_name) |
텍스트 | 지정된 변환 이름을 사용하여 인코딩 변경. 전환은에 의해 정의 될 수 있습니다.생성 변환. 또한 사전 정의 된 것이 있습니다 변환 이름. 보다표 9-7사용 가능한 변환 이름은 | convert ( 'postgresql'를 사용합니다 ISO_8859_1_TO_UTF8) | 'PostgreSQL'UTF8에서 (유니 코드, 8 비트) 인코딩 |
Lower (String) |
텍스트 | 소문자로 문자열을 변환 | Lower ( 'Tom') | Tom |
Octet_length (String) |
int | 문자열의 바이트 수 | Octet_length ( 'Jose') | 4 |
오버레이 (String배치StringFromint[forint]) |
텍스트 | 기판 교체 | 오버레이 ( 'txxxxas' 'hom'배치 4에서 4)에서 | Thomas |
위치 (SubstringinString) |
int | 지정된 하위 문자의 위치 | 위치 ( 'om'in '도마') | 3 |
Substring (String[Fromint] [forint]) |
텍스트 | Extract attring | 서브 스트링 ( 'Thomas'에서 2 for 3) | hom |
Substring (StringFrom패턴) |
텍스트 | POSIX 정규 표현식을 일치시키는 기판 추출. 보다롤 토토 PostgreSQL : 문서 : 8.1 : 패턴 매칭패턴 매칭에 대한 자세한 정보. | 서브 스트링 ( '토마스' '... $') | mas |
Substring (StringFrom패턴for탈출) |
텍스트 | 추출 기판 매칭SQL정규 표현. 보다섹션 9.7더 많은 것 패턴 매칭에 대한 정보. | 서브 스트링 ( '토마스'에서 '%#"O_A#"_'for '#') | OMA |
트림 ([주요 |
후행 | 둘 다] [캐릭터]
에서String) |
텍스트 | |캐릭터(공간에 의한 기본값) 시작/끝/양쪽 끝에서String | 트림 (둘 다 'x'에서 'XTOMXX') | Tom |
어퍼 (String) |
텍스트 | 문자열을 대문자로 변환 | 어퍼 ( 'Tom') | Tom |
추가 문자열 조작 함수를 사용할 수 있으며 있습니다 에 나열됨표 9-6. 그들 중 일부는 내부적으로 사용되어SQL-Standard 문자열 함수에 나열테이블 9-5.
표 9-6. 기타 문자열 함수
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
ASCII (텍스트) |
int | ASCII코드 논쟁의 첫 성격 | ascii ( 'x') | 120 |
btrim (String
텍스트[,
캐릭터 텍스트]) |
텍스트 | 만 구성된 가장 긴 문자열을 제거하십시오 의 캐릭터캐릭터(a 기본적으로 공간)의 시작과 끝에서String | btrim ( 'xyxtrimyyx', 'xy') | 트림 |
chr (int) |
텍스트 | 주어진 문자ASCII코드 | chr (65) | a |
Convert (String 텍스트,
[src_encoding 이름,]dest_encoding 이름) |
텍스트 | 문자열 변환dest_encoding. 원래 인코딩은입니다 지정src_encoding. 만약에src_encoding생략, 데이터베이스 인코딩이 가정됩니다. | convert ( 'text_in_utf8', 'utf8', 'latin1') | text_in_utf8ISO 8859-1 인코딩 |
decode (String 텍스트,
타입 텍스트) |
BYTEA | 이진 데이터 디코드String이전에 인코딩Encode . 매개 변수 유형입니다
와 동일Encode . |
decode ( 'mtizaae =', 'base64') | 123 \ 000 \ 001 |
Encode (data
BYTEA, 타입 텍스트) |
텍스트 | 이진 데이터 인코딩ASCII-표현. 지원 유형은 다음과 같습니다.Base64, hex, 탈출. | Encode ( '123 \\ 000 \\ 001', 'base64') | mtizaae = |
Initcap (텍스트) |
텍스트 | 각 단어의 첫 글자를 대문자로 변환합니다 그리고 나머지는 소문자입니다. 단어는의 시퀀스입니다 영숫자 문자는 비 alphanumeric으로 분리됩니다 캐릭터. | InitCap ( 'Hi Thomas') | Hi Thomas |
길이 (String 텍스트) |
int | 문자 수String | 길이 ( 'Jose') | 4 |
LPAD (String
텍스트, 길이 int[, fill
텍스트]) |
텍스트 | 채우기Stringto 길이길이선불로 캐릭터fill(공간 기본적으로). 인 경우Stringis 이미 더 길다길이그런 다음 (오른쪽에) 잘린 상태입니다. | lpad ( 'hi', 5, 'xy') | xyxhi |
ltrim (String
텍스트[,
캐릭터 텍스트]) |
텍스트 | 문자 만 포함 된 가장 긴 문자열을 제거합니다 에서문자(공간에 의한 기본값) 시작부터String | ltrim ( 'zzzytrim', 'xyz') | 트림 |
MD5 (String
텍스트) |
텍스트 | MD5 해시 계산String, 결과를 반환합니다 16 진수 | MD5 ( 'ABC') | 900150983CD24FB0 D6963F7D28E17F72 |
pg_client_encoding () |
이름 | 현재 클라이언트 인코딩 이름 | pg_client_encoding () | SQL_ASCII |
quote_ident (String텍스트) |
텍스트 | 주어진 문자열을 반환하여 의 식별자SQL문자열. 인용문은입니다 필요한 경우에만 추가하십시오 (즉, 문자열에 포함 된 경우 비 식별 자 문자 또는 사례 전달). 임베디드 따옴표가 제대로 두 배가되었습니다. | QUOTE_INDEN ( 'foo bar') | "Foo Bar" |
QUOTE_LITERAL (String텍스트) |
텍스트 | 주어진 문자열을 반환합니다. 의 문자열 문자SQL문자열. 임베디드 따옴표 그리고 백 슬래시는 제대로 두 배가되었습니다. | quote_literal ( 'o \'reilly ') | 'O''Reilly' |
regexp_replace (String 텍스트,
패턴 텍스트, 교체
텍스트[,플래그 텍스트]) |
텍스트 | POSIX 정규 표현식을 일치시키는 부분 문자열 교체. 보다롤 토토 PostgreSQL : 문서 : 8.1 : 패턴 매칭패턴 매칭에 대한 자세한 정보. | regexp_replace ( 'Thomas', '. [mn] a.', 'm') | thm |
반복 (String 텍스트,
번호 int) |
텍스트 | 반복String지정된번호of Times | 반복 ( 'PG', 4) | PGPGPGPG |
교체 (String 텍스트,
From 텍스트, to
텍스트) |
텍스트 | 모든 발생을 교체Stringof substringFromwith substringto | 교체 ( 'abcdefabcdef', 'cd', '더블 엑스') | abxxefabxxef |
RPAD (String
텍스트, 길이 int[, fill
텍스트]) |
텍스트 | 채우기StringTO 길이길이문자fill(공간에 의한 공간 기본). 인 경우StringIS 이미 더 길다길이그런 다음 잘 렸습니다. | rpad ( 'hi', 5, 'xy') | hixyx |
rtrim (String
텍스트[,
캐릭터 텍스트]) |
텍스트 | 문자 만 포함 된 가장 긴 문자열을 제거합니다 에서문자(공간에 의한 기본값) 끝까지String | rtrim ( 'trimxxxx', 'x') | 트림 |
split_part (String 텍스트,
Delimiter 텍스트, 필드
int) |
텍스트 | 분할StringonDelimiter주어진 필드를 반환하십시오 (하나에서 계산) | split_part ( 'abc ~@~ def ~@~ ghi', '~@~', 2) | def |
strpos (String, Substring) |
int | 지정된 서브 스트링의 위치 (동일위치 (SubstringinString), 그러나 역전 된 인수 명령) | strpos ( 'high', 'ig') | 2 |
서브 스트 (String, From[, count]) |
텍스트 | 추출 하부 스트링 (동일Substring (StringFromFromforcount)) | 서브 스트 ( '알파벳', 3, 2) | PH |
TO_ASCII (텍스트[, 인코딩]) |
텍스트 | 변환텍스트toASCII다른 것 부호화[A] | to_ascii ( 'Karel') | Karel |
TO_HEX (번호 int또는bigint) |
텍스트 | 변환번호그것의 동등한 16 진수 표현 | TO_HEX (2147483647) | 7fffffff |
번역 (String 텍스트,
From 텍스트, to
텍스트) |
텍스트 | 모든 캐릭터StringFrom세트는 의 해당 문자toset | 번역 ( '12345', '14', '도끼') | A23X5 |
참고 : a.the TO_ASCII 함수 지원
에서 전환latin1, latin2, latin9및Win1250인코딩 만. |
표 9-7. 내장 변환
변환 이름[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 | KOI8 |
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_ISO_8859_5 | KOI8 | ISO_8859_5 |
KOI8_R_TO_MIC | 47552_47558 | mule_internal |
KOI8_R_TO_UTF8 | KOI8 | UTF8 |
KOI8_R_TO_WINDOWS_1251 | KOI8 | Win1251 |
KOI8_R_TO_WINDOWS_866 | KOI8 | Win866 |
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 | KOI8 |
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 |
TCVN_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 | KOI8 |
UTF8_TO_SJIS | UTF8 | SJIS |
UTF8_TO_TCVN | 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_1256 | UTF8 | Win1256 |
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 | KOI8 |
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_8859_5 | Win866 | ISO_8859_5 |
Windows_866_TO_KOI8_R | Win866 | KOI8 |
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 |
참고 : a.변환 이름은 표준 명명 체계를 따릅니다 소스의 공식 이름 비 알파럼 성 문자는 밑줄로 대체되었습니다 뒤 이어_to_동일하게 처리 된 대상 인코딩 이름. 따라서 이름은 관습 인코딩에서 벗어날 수 있습니다 이름. |