이 섹션에서는 검사를 위한 함수와 연산자를 설명합니다. 문자열 값을 조작합니다. 이 컨텍스트의 문자열에는 다음이 포함됩니다. 모든 유형의 값문자, 문자 다양및텍스트. 별도의 언급이 없는 한 모든 기능은 아래 나열된 작업은 이러한 모든 유형에 적용되지만 잠재적인 위험에 주의하세요. 를 사용할 때 자동 패딩 효과문자유형. 일반적으로 설명된 기능은 여기서도 문자열이 아닌 유형의 데이터를 변환하여 작업합니다. 먼저 데이터를 문자열 표현으로 변환합니다. 일부 기능도 존재합니다. 기본적으로 비트 문자열 유형에 대한 것입니다.
SQL일부 문자열을 정의합니다. 특정 키워드가 아닌 특수 구문을 사용하는 함수 쉼표는 인수를 구분하는 데 사용됩니다. 자세한 내용은 다음을 참조하세요.테이블 9-6. 이러한 기능은 일반 함수를 사용하여 구현됩니다. 함수 호출 구문. (참조테이블 9-7.)
표 9-6.SQL문자열 함수 및 연산자
| 기능 | 반환 유형 | 설명 | 예 | 결과 | 
|---|---|---|---|---|
| 문자열 || 문자열 | 텍스트 | 문자열 연결 | '게시물' || 'greSQL' | 포스트그레SQL | 
bit_length(문자열) | 
          정수 | 문자열의 비트 수 | bit_length('호세') | 32 | 
char_length(문자열)또는character_length(문자열) | 
          정수 | 문자열의 문자 수 | char_length('호세') | 4 | 
변환(문자열사용 중conversion_name) | 
          텍스트 | 지정된 변환 이름을 사용하여 인코딩을 변경합니다. 전환은 다음과 같이 정의할 수 있습니다.만들기 전환. 또한 미리 정의된 항목도 있습니다. 변환 이름. 참조표 9-8사용 가능한 변환 이름에 대해. | convert('PostgreSQL'을 사용하여 iso_8859_1_to_utf_8) | 'PostgreSQL'유니코드 (utf-8) 인코딩 | 
하위(문자열) | 
          텍스트 | 문자열을 소문자로 변환 | 하위('TOM') | 톰 | 
octet_length(문자열) | 
          정수 | 문자열의 바이트 수 | octet_length('호세') | 4 | 
오버레이(문자열배치문자열from정수 [for정수]) | 
          텍스트 | 하위 문자열 교체 | overlay('Txxxxas'가 'hom'을 배치함 2대4부터) | 토마스 | 
위치(하위 문자열in문자열) | 
          정수 | 지정된 하위 문자열의 위치 | 위치('om' in '토마스') | 3 | 
하위 문자열(문자열 [from정수] [for정수]) | 
          텍스트 | 하위 문자열 추출 | substring(2의 '토마스' for 2 3) | 홈 | 
하위 문자열(문자열from패턴) | 
          텍스트 | POSIX 정규 표현식과 일치하는 하위 문자열 추출 | substring('토마스' from '...$') | 마스 | 
하위 문자열(문자열from패턴for탈출) | 
          텍스트 | 일치하는 하위 문자열 추출SQL정규 표현식 | substring('토마스' from '#'의 경우 '%#"o_a#"_') | 오마 | 
트림([리딩 |
          후행 | 둘 다] [문자]
          에서문자열) | 
          텍스트 | 다음만 포함하는 가장 긴 문자열을 제거합니다.문자(공백 기본값)의 시작/끝/양쪽 끝에서문자열. | trim(둘 다 'x' 'xTomxx') | 톰 | 
상부(문자열) | 
          텍스트 | 문자열을 대문자로 변환 | 상단('톰') | 톰 | 
추가 문자열 조작 기능을 사용할 수 있으며 에 나열됨표 9-7. 그 중 일부는 내부적으로 다음을 구현하는 데 사용됩니다.SQL-다음에 나열된 표준 문자열 함수테이블 9-6.
표 9-7. 기타 문자열 함수
| 기능 | 반환 유형 | 설명 | 예 | 결과 | 
|---|---|---|---|---|
ascii(텍스트) | 
          정수 | ASCII코드 인수의 첫 번째 문자 | ascii('x') | 120 | 
btrim(문자열
          텍스트, 문자 텍스트) | 
          텍스트 | 다음으로 구성된 가장 긴 문자열을 제거합니다. 문자문자에서 시작과 끝문자열. | btrim('xyxtrimyyx', 'xy') | 트림 | 
문자(정수) | 
          텍스트 | 주어진 문자ASCII코드 | 문자(65) | A | 
변환(문자열 텍스트,
          [src_encoding 이름,] dest_encoding 이름) | 
          텍스트 | 문자열을 다음으로 변환dest_encoding. 원래 인코딩은 에 의해 지정됨src_encoding. 만일src_encoding생략됨, 데이터베이스 인코딩이 가정됩니다. | 변환('텍스트_유니코드', '유니코드', 'LATIN1') | text_in_unicode대표 ISO 8859-1 인코딩에서 | 
디코드(문자열 텍스트,
          유형 텍스트) | 
          바이테아 | 바이너리 데이터 디코딩문자열이전에 다음으로 인코딩됨인코딩. 매개변수 유형은 다음과 같습니다.
          와 동일인코딩. | 
          디코드('MTIzAAE=', 'base64') | 123\000\001 | 
인코딩(데이터
          바이테아, 유형 텍스트) | 
          텍스트 | 바이너리 데이터를 다음으로 인코딩ASCII-전용 표현. 지원됨 유형은 다음과 같습니다.base64, 16진수, 탈출. | 인코드( '123\\000\\001', 'base64') | MTIzAAE= | 
initcap(텍스트) | 
          텍스트 | 각 단어의 첫 글자 변환 (공백으로 구분)을 대문자로 | initcap('안녕 토마스') | 안녕하세요 토마스 | 
길이(문자열) | 
          정수 | 문자열의 문자 수 | 길이('호세') | 4 | 
lpad(문자열
          텍스트, 길이 정수
          [, 채우기
          텍스트]) | 
          텍스트 | 채우세요문자열에 길이길이앞에 추가하여 캐릭터채우기(공백 기본적으로). 만약문자열이다 이미 다음보다 길다길이그러면 잘립니다(오른쪽). | lpad('안녕', 5, 'xy') | xyxhi | 
ltrim(문자열
          텍스트, 문자 텍스트) | 
          텍스트 | 문자만 포함하는 가장 긴 문자열 제거 에서문자처음부터 문자열의. | ltrim('zzzytrim', 'xyz') | 트림 | 
md5(문자열
          텍스트) | 
          텍스트 | 주어진 문자열의 MD5 해시를 계산하여 반환합니다. 결과는 16진수입니다. | md5('abc') | 900150983cd24fb0 d6963f7d28e17f72 | 
pg_client_encoding() | 
          이름 | 현재 클라이언트 인코딩 이름 | pg_client_encoding() | SQL_ASCII | 
quote_ident(문자열텍스트) | 
          텍스트 | 다음과 같이 사용되도록 적절하게 인용된 주어진 문자열을 반환합니다. 의 식별자SQL문 문자열. 견적은 필요한 경우에만 추가됩니다(즉, 문자열에 다음이 포함된 경우). 식별자가 아닌 문자이거나 대소문자가 구분됩니다). 삽입된 따옴표는 적절하게 두 배로 표시됩니다. | quote_ident('푸') | "푸" | 
quote_literal(문자열텍스트) | 
          텍스트 | 다음과 같이 사용되도록 적절하게 인용된 주어진 문자열을 반환합니다. 의 문자열 리터럴SQL문 문자열. 삽입된 인용문 백슬래시는 적절하게 두 배가 됩니다. | quote_literal( '오\'라일리') | 'O''라일리' | 
반복(텍스트,
          정수) | 
          텍스트 | 텍스트를 여러 번 반복 | 반복('Pg', 4) | PgPgPgPg | 
교체(문자열 텍스트,
          from 텍스트, 에
          텍스트) | 
          텍스트 | 다음의 모든 항목 바꾸기문자열하위 문자열에서하위 문자열 포함에. | replace('abcdefabcdef', 'cd', 'XX') | abXXefabXXef | 
rpad(문자열
          텍스트, 길이 정수
          [, 채우기
          텍스트]) | 
          텍스트 | 채우세요문자열에 길이길이다음을 추가하여 문자채우기(공백 기본값). 만약문자열이다 이미 다음보다 길다길이그러면 잘립니다. | rpad('안녕', 5, 'xy') | hixyx | 
rtrim(문자열텍스트,문자텍스트) | 
          텍스트 | 문자만 포함하는 가장 긴 문자열 제거 에서문자끝부터 문자열의. | rtrim('trimxxxx', 'x') | 트림 | 
split_part(문자열 텍스트,
          구분자 텍스트, 필드
          정수) | 
          텍스트 | 분할문자열켜짐구분자그리고 주어진 필드를 반환합니다. (하나부터 계산) | split_part( 'abc~@~def~@~ghi', '~@~', 2) | def | 
strpos(문자열, 하위 문자열) | 
          int | 지정된 하위 문자열의 위치(동일위치(하위 문자열in문자열), 하지만 주의하세요. 인수 순서가 반대임) | strpos('높음', 'ig') | 2 | 
substr(문자열, from
          [, 개수]) | 
          텍스트 | 하위 문자열 추출(동일하위 문자열(문자열fromfromfor개수)) | substr('알파벳', 3, 2) | ph | 
to_ascii(텍스트
          [, 인코딩]) | 
          텍스트 | 텍스트를 다음으로 변환ASCII다른 인코딩에서[a] | to_ascii('카렐') | 카렐 | 
to_hex(번호 정수또는비긴트) | 
          텍스트 | 변환번호그쪽으로 동등한 16진수 표현 | to_hex(2147483647) | 7fffffff | 
번역(문자열 텍스트,
          from 텍스트, 에
          텍스트) | 
          텍스트 | 다음 문자문자열다음 문자와 일치함from세트는 다음으로 대체됩니다. 의 해당 문자에설정. | translate('12345', '14', '도끼') | a23x5 | 
| 참고: a.그 to_ascii함수 지원
        에서 변환LATIN1, LATIN2및WIN1250만. | 
      ||||
표 9-8. 내장된 전환
| 변환 이름[a] | 소스 인코딩 | 대상 인코딩 | 
|---|---|---|
| ascii_to_mic | SQL_ASCII | MULE_INTERNAL | 
| ascii_to_utf_8 | SQL_ASCII | 유니코드 | 
| big5_to_euc_tw | 빅5 | EUC_TW | 
| big5_to_mic | 빅5 | MULE_INTERNAL | 
| big5_to_utf_8 | 빅5 | 유니코드 | 
| euc_cn_to_mic | EUC_CN | MULE_INTERNAL | 
| euc_cn_to_utf_8 | EUC_CN | 유니코드 | 
| euc_jp_to_mic | EUC_JP | MULE_INTERNAL | 
| euc_jp_to_sjis | EUC_JP | SJIS | 
| euc_jp_to_utf_8 | EUC_JP | 유니코드 | 
| euc_kr_to_mic | EUC_KR | MULE_INTERNAL | 
| euc_kr_to_utf_8 | EUC_KR | 유니코드 | 
| euc_tw_to_big5 | EUC_TW | 빅5 | 
| euc_tw_to_mic | EUC_TW | MULE_INTERNAL | 
| euc_tw_to_utf_8 | EUC_TW | 유니코드 | 
| gb18030_to_utf_8 | GB18030 | 유니코드 | 
| gbk_to_utf_8 | GBK | 유니코드 | 
| iso_8859_10_to_utf_8 | LATIN6 | 유니코드 | 
| iso_8859_13_to_utf_8 | LATIN7 | 유니코드 | 
| iso_8859_14_to_utf_8 | LATIN8 | 유니코드 | 
| iso_8859_15_to_utf_8 | LATIN9 | 유니코드 | 
| iso_8859_16_to_utf_8 | LATIN10 | 유니코드 | 
| iso_8859_1_to_mic | LATIN1 | MULE_INTERNAL | 
| iso_8859_1_to_utf_8 | LATIN1 | 유니코드 | 
| iso_8859_2_to_mic | LATIN2 | MULE_INTERNAL | 
| iso_8859_2_to_utf_8 | LATIN2 | 유니코드 | 
| iso_8859_2_to_windows_1250 | LATIN2 | WIN1250 | 
| iso_8859_3_to_mic | LATIN3 | MULE_INTERNAL | 
| iso_8859_3_to_utf_8 | LATIN3 | 유니코드 | 
| iso_8859_4_to_mic | LATIN4 | MULE_INTERNAL | 
| iso_8859_4_to_utf_8 | LATIN4 | 유니코드 | 
| iso_8859_5_to_koi8_r | ISO_8859_5 | KOI8 | 
| iso_8859_5_to_mic | ISO_8859_5 | MULE_INTERNAL | 
| iso_8859_5_to_utf_8 | ISO_8859_5 | 유니코드 | 
| iso_8859_5_to_windows_1251 | ISO_8859_5 | 승리 | 
| iso_8859_5_to_windows_866 | ISO_8859_5 | 대체 | 
| iso_8859_6_to_utf_8 | ISO_8859_6 | 유니코드 | 
| iso_8859_7_to_utf_8 | ISO_8859_7 | 유니코드 | 
| iso_8859_8_to_utf_8 | ISO_8859_8 | 유니코드 | 
| iso_8859_9_to_utf_8 | LATIN5 | 유니코드 | 
| johab_to_utf_8 | 조하브 | 유니코드 | 
| koi8_r_to_iso_8859_5 | KOI8 | ISO_8859_5 | 
| koi8_r_to_mic | KOI8 | MULE_INTERNAL | 
| koi8_r_to_utf_8 | KOI8 | 유니코드 | 
| koi8_r_to_windows_1251 | KOI8 | 승리 | 
| koi8_r_to_windows_866 | KOI8 | 대체 | 
| mic_to_ascii | MULE_INTERNAL | SQL_ASCII | 
| mic_to_big5 | MULE_INTERNAL | 빅5 | 
| 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 | 승리 | 
| mic_to_windows_866 | MULE_INTERNAL | 대체 | 
| sjis_to_euc_jp | SJIS | EUC_JP | 
| sjis_to_mic | SJIS | MULE_INTERNAL | 
| sjis_to_utf_8 | SJIS | 유니코드 | 
| tcvn_to_utf_8 | TCVN | 유니코드 | 
| uhc_to_utf_8 | UHC | 유니코드 | 
| utf_8_to_ascii | 유니코드 | SQL_ASCII | 
| utf_8_to_big5 | 유니코드 | 빅5 | 
| utf_8_to_euc_cn | 유니코드 | EUC_CN | 
| utf_8_to_euc_jp | 유니코드 | EUC_JP | 
| utf_8_to_euc_kr | 유니코드 | EUC_KR | 
| utf_8_to_euc_tw | 유니코드 | EUC_TW | 
| utf_8_to_gb18030 | 유니코드 | GB18030 | 
| utf_8_to_gbk | 유니코드 | GBK | 
| utf_8_to_iso_8859_1 | 유니코드 | 라틴어1 | 
| utf_8_to_iso_8859_10 | 유니코드 | LATIN6 | 
| utf_8_to_iso_8859_13 | 유니코드 | LATIN7 | 
| utf_8_to_iso_8859_14 | 유니코드 | LATIN8 | 
| utf_8_to_iso_8859_15 | 유니코드 | LATIN9 | 
| utf_8_to_iso_8859_16 | 유니코드 | LATIN10 | 
| utf_8_to_iso_8859_2 | 유니코드 | LATIN2 | 
| utf_8_to_iso_8859_3 | 유니코드 | LATIN3 | 
| utf_8_to_iso_8859_4 | 유니코드 | LATIN4 | 
| utf_8_to_iso_8859_5 | 유니코드 | ISO_8859_5 | 
| utf_8_to_iso_8859_6 | 유니코드 | ISO_8859_6 | 
| utf_8_to_iso_8859_7 | 유니코드 | ISO_8859_7 | 
| utf_8_to_iso_8859_8 | 유니코드 | ISO_8859_8 | 
| utf_8_to_iso_8859_9 | 유니코드 | LATIN5 | 
| utf_8_to_johab | 유니코드 | 조하브 | 
| utf_8_to_koi8_r | 유니코드 | KOI8 | 
| utf_8_to_sjis | 유니코드 | SJIS | 
| utf_8_to_tcvn | 유니코드 | TCVN | 
| utf_8_to_uhc | 유니코드 | UHC | 
| utf_8_to_windows_1250 | 유니코드 | WIN1250 | 
| utf_8_to_windows_1251 | 유니코드 | 승리 | 
| utf_8_to_windows_1256 | 유니코드 | WIN1256 | 
| utf_8_to_windows_866 | 유니코드 | 대체 | 
| utf_8_to_windows_874 | 유니코드 | WIN874 | 
| windows_1250_to_iso_8859_2 | WIN1250 | LATIN2 | 
| windows_1250_to_mic | WIN1250 | MULE_INTERNAL | 
| windows_1250_to_utf_8 | WIN1250 | 유니코드 | 
| windows_1251_to_iso_8859_5 | 승리 | ISO_8859_5 | 
| windows_1251_to_koi8_r | 승리 | KOI8 | 
| windows_1251_to_mic | 승리 | MULE_INTERNAL | 
| windows_1251_to_utf_8 | 승리 | 유니코드 | 
| windows_1251_to_windows_866 | 승리 | ALT | 
| windows_1256_to_utf_8 | WIN1256 | 유니코드 | 
| windows_866_to_iso_8859_5 | 대체 | ISO_8859_5 | 
| windows_866_to_koi8_r | 대체 | KOI8 | 
| windows_866_to_mic | 대체 | MULE_INTERNAL | 
| windows_866_to_utf_8 | 대체 | 유니코드 | 
| windows_866_to_windows_1251 | 대체 | 승리 | 
| windows_874_to_utf_8 | WIN874 | 유니코드 | 
| 참고: a.변환 이름은 표준 명명 체계를 따릅니다. 모두 포함된 소스 인코딩의 공식 이름 영숫자가 아닌 문자는 밑줄로 대체됨 이어서_to_뒤에 동일하게 처리된 대상 인코딩 이름입니다. 그러므로 이름은 관례적인 인코딩에서 벗어날 수 있습니다. 이름.  | 
      ||