개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2
이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다3_스포츠 토토 결과3버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.15. 무지개 토토 기능 및 운영자

표 9.43두 무지개 토토 데이터 유형과 함께 사용할 수있는 연산자를 보여줍니다 (참조PostgreSQL : 문서 : 11 : 8.14. 윈 토토 유형).

표 9.43. 무지개 토토and무지개 토토B운영자

운영자 오른쪽 피연산자 유형 설명 example 예제 결과
- int 무지개 토토 배열 요소 가져 오기 (0에서 인덱싱, 끝에서 네거티브 정수 카운트) '[ "a": "foo", "b": "bar", "c": "baz"]':: 무지개 토토- 2 "c": "baz"
- 텍스트 key에 의해 무지개 토토 개체 필드 가져 오기 ' "a": "b": "foo"':: 무지개 토토- 'a' "b": "foo"
- int 무지개 토토 배열 요소를 가져옵니다텍스트 '[1,2,3]':: 무지개 토토- 2 3
- 텍스트 무지개 토토 객체 필드를 가져옵니다.텍스트 ' "a": 1, "b": 2':: 무지개 토토- 'b' 2
# 텍스트 [] 지정된 경로에서 무지개 토토 개체 가져 오기 ' "a": "b": "c": "foo"':: 무지개 토토# 'a, b' "C": "foo"
# 텍스트 [] 지정된 경로에서 무지개 토토 오브젝트를 가져옵니다텍스트 ' "a": [1,2,3], "b": [4,5,6]':: 무지개 토토# 'a, 2' 3

note

두 연산자의 평행 변형이 있습니다.무지개 토토and무지개 토토B유형. 필드/요소/경로 추출 연산자는 왼쪽 입력과 동일한 유형을 반환합니다 (하나무지개 토토또는무지개 토토B), 반환으로 지정된 것을 제외하고.텍스트, 값을 텍스트로 강요합니다. 무지개 토토 입력에 요청과 일치 할 올바른 구조가없는 경우 필드/요소/경로 추출 연산자는 실패하지 않고 NULL을 반환합니다. 예를 들어 그러한 요소가 존재하지 않는 경우. 정수 무지개 토토 배열 위트 스크립트를 허용하는 필드/요소/경로 추출 연산자는 모두 배열 끝에서 음수 첨자를 지원합니다.

표준 비교 연산자표 9.1무지개 토토B, 그러나무지개 토토. 그들은 다음에 요약 된 B-tree 운영에 대한 주문 규칙을 따릅니다섹션 8.14.4. 참조 참조PostgreSQL : 문서 : 11 : 9.20. 윈 토토 기능집계 함수의 경우무지개 토토_AGG값을 무지개 토토, 집계 함수로 기록하는 집계무지개 토토_object_agg어떤 값을 무지개 토토 객체에 집계하고무지개 토토B등가,무지개 토토B_AGGand무지개 토토b_object_agg.

일부 추가 연산자도에만 존재합니다무지개 토토B,표 9.44. 이러한 연산자 중 다수는에 의해 색인을 색인화 할 수 있습니다.무지개 토토B운영자 클래스. 에 대한 전체 설명무지개 토토B격리 및 존재 의미, 참조섹션 8.14.3. 섹션 8.14.4이러한 연산자가 효과적으로 색인을 사용하는 방법을 설명합니다무지개 토토B데이터.

표 9.44. 추가의무지개 토토B운영자

운영자 오른쪽 피연산자 유형 설명 example
@ 무지개 토토B 왼쪽 무지개 토토 값에는 최상위 수준의 오른쪽 무지개 토토 경로/값 항목이 포함되어 있습니까? ' "a": 1, "b": 2':: 무지개 토토b @ ' "b": 2':: 무지개 토토b
<@ 무지개 토토B 왼쪽 무지개 토토 경로/값 항목은 오른쪽 무지개 토토 값 내에서 최상위 레벨에 포함되어 있습니까? ' "b": 2':: jsonb <@ ' "a": 1, "b": 2':: jsonb
? 텍스트 String무지개 토토 값 내에서 최상위 키로 존재합니까? ' "a": 1, "b": 2':: 무지개 토토b? '비'
? | 텍스트 [] 이 배열을 수행문자열최상위 키로 존재합니까? ' "a": 1, "b": "2,"c ": 3':: jsonb? | | 배열 [ 'b', 'c']
? & 텍스트 [] 이 모든 배열을 수행문자열최상위 키로 존재합니까? '[ "a", "b"]':: jsonb? & array [ 'a', 'b']
|| 무지개 토토B 두 가지무지개 토토B새로운 값무지개 토토Bvalue '[ "A", "B"]':: 무지개 토토B || '[ "C", "D"]' ':: 무지개 토토B
- 텍스트 키/값 쌍 삭제 또는String왼쪽 피연산자의 요소. 키/값 쌍은 키 값에 따라 일치합니다. ' "a": "b"':: 무지개 토토B- 'a'
- 텍스트 [] 다중 키/값 쌍을 삭제하거나String왼쪽 피연산자의 요소. 키/값 쌍은 키 값에 따라 일치합니다. ' "a": "b", "c": "d"':: 무지개 토토b- 'a, c':: text []
- Integer 지정된 인덱스로 배열 요소를 삭제합니다 (끝에서 음의 정수 수). 최상위 컨테이너가 배열이 아닌 경우 오류를 던집니다. '[ "A", "B"]':: 무지개 토토B -1
#- 텍스트 [] 지정된 경로로 필드 또는 요소를 삭제합니다 (무지개 토토 어레이의 경우 끝까지 음수 정수 수) '[ "a", "b": 1]':: jsonb #- '1, b'

Note

the||연산자는 키의 결합을 포함하는 객체를 생성하여 두 개의 무지개 토토 객체를 연결하여 중복 키가있을 때 두 번째 객체의 값을 취합니다. 다른 모든 경우는 무지개 토토 어레이를 생성합니다. 첫째, 비 어레이 입력이 단일 요소 배열로 변환 된 다음 두 배열이 연결됩니다. 그것은 재귀 적으로 작동하지 않습니다. 최상위 배열 또는 객체 구조 만 병합됩니다.

표 9.45생성 할 수있는 기능을 보여줍니다무지개 토토and무지개 토토B값. (에 대한 동등한 함수는 없습니다무지개 토토B,row_to_무지개 토토andarray_to_무지개 토토기능. 그러나TO_무지개 토토B함수는 이러한 함수와 거의 동일한 기능을 제공합니다.)

표 9.45. 무지개 토토 제작 기능

기능 설명 example 예제 결과

TO_무지개 토토 (Anylement)

TO_무지개 토토B (Anylement)

값을 다시 반환합니다무지개 토토또는무지개 토토B. 배열 및 복합재는 어레이 및 객체로 (재귀 적으로) 변환됩니다. 그렇지 않으면 유형에서로 캐스트가있는 경우무지개 토토, 캐스트 함수는 변환을 수행하는 데 사용됩니다. 그렇지 않으면 스칼라 값이 생성됩니다. 숫자, 부울 또는 널 값 이외의 스칼라 유형의 경우 텍스트 표현이 유효한 방식으로 사용됩니다무지개 토토또는무지개 토토Bvalue. TO_무지개 토토 ( '프레드는 "안녕하세요."':: Text) "프레드가 \"hi. \ "" 말했다.
array_to_무지개 토토 (anyArray [, pretty_bool]) 배열을 무지개 토토 배열로 반환합니다. PostgreSQL 다차원 배열은 무지개 토토 배열 배열이됩니다. 라인 피드는 Dimension-1 요소간에 추가됩니다.pretty_bool진실입니다. array_to_무지개 토토 ( '1,5, 99,100':: int []) [[1,5], [99,100]]
row_to_무지개 토토 (레코드 [, pretty_bool]) 행을 무지개 토토 객체로 반환합니다. 라인 피드는 레벨 1 요소간에 추가됩니다.pretty_bool진실입니다. row_to_무지개 토토 (Row (1, 'foo')) "f1": 1, "f2": "foo"

무지개 토토_build_array (variadic "any")

무지개 토토B_BUILD_ARRAY (variadic "any")

다양한 인수 목록에서 아마도 이질적인 무지개 토토 배열을 구축합니다. 무지개 토토_BUILD_ARRAY (1,2, '3', 4,5) [1, 2, "3", 4, 5]

무지개 토토_build_object (variadic "any")

무지개 토토b_build_object (variadic "any")

Variadic 인수 목록에서 무지개 토토 객체를 빌드합니다. 컨벤션별로, 인수 목록은 교대 키와 값으로 구성됩니다. 무지개 토토_build_object ( 'foo', 1, 'bar', 2) "foo": 1, "bar": 2

무지개 토토_object (text [])

무지개 토토b_object (text [])

텍스트 배열에서 무지개 토토 객체를 빌드합니다. 배열에는 짝수의 멤버가있는 정확한 1 차원이 있어야하며,이 경우 각각의 내부 배열이 정확히 두 개의 요소를 갖도록 키/값 쌍으로 간주되도록 두 차원으로 간주됩니다..

무지개 토토_object ( 'a, 1, b, "def", c, 3.5')

무지개 토토_object ( 'a, 1, b, "def", c, 3.5')

"a": "1", "b": "def", "c": "3.5"

무지개 토토_object (keys text [], 값 text [])

무지개 토토b_object (keys text [], 값 text [])

이 형태의무지개 토토_object두 개의 별도 배열에서 키와 값을 쌍으로 가져옵니다. 다른 모든 측면에서 그것은 하나의 변호 형식과 동일합니다. 무지개 토토_object ( 'a, b', '1,2') "A": "1", "B": "2"

note

array_to_무지개 토토androw_to_무지개 토토|to_무지개 토토꽤 인쇄 옵션을 제공하지 않는 경우를 제외하고. 설명 된 행동to_무지개 토토마찬가지로 다른 무지개 토토 생성 기능에 의해 변환 된 각 개별 값에 적용됩니다.

Note

thePostgreSQL : 문서 : 11 : F.16. 스포츠 토토 결과Extension은HSTOREto무지개 토토HSTORE무지개 토토 생성 함수를 통해 변환 된 값은 원시 문자열 값이 아닌 무지개 토토 객체로 표시됩니다.

표 9.46처리 할 수있는 기능을 보여줍니다무지개 토토and무지개 토토B값.

표 9.46. 무지개 토토 처리 기능

기능 반환 유형 설명 example 예제 결과

무지개 토토_array_length (무지개 토토)

무지개 토토b_array_length (무지개 토토b)

int 가장 바깥 쪽 무지개 토토 어레이의 요소 수를 반환합니다. 무지개 토토_array_length ( '[1,2,3, "f1": 1, "f2": [5,6], 4]') 5

무지개 토토_each (무지개 토토)

무지개 토토B_EACH (무지개 토토B)

키 텍스트 설정, 값 무지개 토토

키 텍스트 설정, 값 무지개 토토B

가장 바깥 쪽 무지개 토토 객체를 키/값 쌍 세트로 확장합니다. 무지개 토토_each에서 * 선택 * ( ' "a": "foo", "b": "bar"')
키 | 값
-----+-------
 A | "foo"
 B | "술집"

무지개 토토_each_text (무지개 토토)

무지개 토토B_ECH_TEXT (무지개 토토B)

키 텍스트 설정, 값 텍스트 가장 바깥 쪽 무지개 토토 객체를 키/값 쌍 세트로 확장합니다. 반환 된 값은 유형입니다텍스트. 무지개 토토_each_text ( ' "a": "foo", "b": "bar"')에서 * 선택 * 선택 *
키 | 값
-----+-------
 A | foo
 B | 술집

무지개 토토_extract_path (from_무지개 토토 무지개 토토, variadic path_elems text [])

무지개 토토b_extract_path (from_무지개 토토 무지개 토토b, variadic path_elems text [])

무지개 토토

무지개 토토B

path_elems(동등한#연산자). 무지개 토토_extract_path ( ' "f2": "f3": 1, "f4": "f5": 99, "f6": "foo"', 'f4') "f5": 99, "f6": "foo"

json_extract_path_text (from_json json, variadic path_elems text [])

jsonb_extract_path_text (from_json jsonb, variadic path_elems text [])

텍스트 path_elemsas텍스트(동등한#연산자). json_extract_path_text ( ' "f2": "f3": 1, "f4": "f5": 99, "f6": "foo"', 'f4', 'f6') foo

무지개 토토_object_keys (json)

무지개 토토b_object_keys (무지개 토토b)

텍스트 설정 가장 바깥 쪽 무지개 토토 객체에서 키 세트를 반환합니다. 무지개 토토_object_keys ( ' "f1": "abc", "f2": "f3": "a", "f4": "b"')
무지개 토토_object_keys
-----------------
 F1
 F2

무지개 토토_POPULE_RECORD (BASE AYLENMENT, FROM_무지개 토토 무지개 토토)

무지개 토토B_POPULE_RECORD (BASE AYLENMENT, FROM_무지개 토토 무지개 토토B)

Anylement 객체를 확장From_무지개 토토열이 열이 정의 된 레코드 유형과 일치하는 행으로베이스(아래 참고 참조). 무지개 토토_populate_record에서 * 선택 * 선택 * 선택 *에서 선택하십시오
a |   B |      기음
---+-----------+------------
 1 | 2, "a b" | (4, "A B C")

무지개 토토_POPULE_RECORDSET (BASE AYLENMENT, FROM_무지개 토토 무지개 토토)

무지개 토토B_POPULE_RECORDSET (BASE AYLENMENT, FROM_무지개 토토 무지개 토토B)

모든 요소 설정 객체의 가장 바깥 쪽 배열을 확장From_무지개 토토열이 정의 된 레코드 유형과 일치하는 행 세트에베이스(아래 참고 참조). 무지개 토토_populate_recordset에서 * 선택 * 선택 (null :: myrowtype, '[ "a": 1, "b": 2, "a": 3, "b": 4]
a | 비
---+---
 1 | 2
 3 | 4

무지개 토토_array_elements (무지개 토토)

무지개 토토B_ARRAY_ELEMENTS (무지개 토토B)

무지개 토토 SETOF 무지개 토토

setof jsonb

무지개 토토 배열을 무지개 토토 값 세트로 확장합니다. 선택 *에서 무지개 토토_ARRAY_ELEMENTS ( '[1, true, [2, false]' ')
값
----------
 1
 진실
 [2, false]

무지개 토토_ARRAY_ELEMENTS_TEXT (무지개 토토)

무지개 토토B_ARRAY_ELEMENTS_TEXT (무지개 토토B)

텍스트 설정 무지개 토토 배열을 세트로 확장합니다텍스트값. 선택 *에서 json_array_elements_text ( '[ "foo", "bar"]')
값
----------
 foo
 술집

무지개 토토_TYPEOF (무지개 토토)

무지개 토토B_TYPEOF (무지개 토토B)

텍스트 텍스트 문자열로 가장 바깥 쪽 json 값의 유형을 반환합니다. 가능한 유형은개체, 배열, String, 번호, 부울NULL. 무지개 토토_typeof ( '-123.4') 번호

무지개 토토_TO_RECORD (무지개 토토)

무지개 토토B_TO_RECORD (무지개 토토B)

레코드 무지개 토토 객체에서 임의의 레코드를 작성합니다 (아래 참고 참조). 모든 기능이 반환되는 것과 마찬가지로레코드, 발신자는 레코드의 구조를 AN으로 명시 적으로 정의해야합니다as절. json_to_record에서 * 선택 * 선택 *에서 선택 * ' "a": 1, "b": [1,2,3], "c": [1,2,3], "e": "b", "r": "a": 123, "b": "a b c"') myrowtype)
a |    B |    C | d |       아르 자형
---+--------+--------+---+-------------
 1 | [1,2,3] | 1,2,3 |   | (123, "A B C")

무지개 토토_TO_RECORDSET (무지개 토토)

무지개 토토B_TO_RECORDSET (무지개 토토B)

기록 무지개 토토 배열로부터 임의의 레코드 세트를 작성합니다 (아래 참고 참조). 모든 기능이 반환되는 것과 마찬가지로레코드, 발신자는 레코드의 구조를 AN으로 명시 적으로 정의해야합니다as절. json_to_recordset ( '[ "a": 1, "b": "foo", "a": "2", "c": "bar"]'))))) x (a int, b text);
a |  비
---+-----
 1 | foo
 2 |

무지개 토토_STRIP_NULLS (FROM_무지개 토토 무지개 토토)

무지개 토토B_STRIP_NULLS (FROM_무지개 토토 무지개 토토B)

무지개 토토

무지개 토토B

반환From_무지개 토토null 값이 생략 된 모든 객체 필드가 ​​있습니다. 다른 널 값은 손대지 않았습니다. 무지개 토토_strip_nulls ( '[ "f1": 1, "f2": null, 2, null, 3]') [ "f1": 1, 2, null, 3]

무지개 토토B_SET (대상 무지개 토토B, PATH TEXT [], NEW_VALUE 무지개 토토B [, create_missing boolean])

무지개 토토B

반환대상Path대체new_value또는 withnew_valueif 추가create_missingtrue (기본값은true) 및 지정된 항목PATH존재하지 않습니다. 경로 지향 연산자와 마찬가지로,에 나타나는 부정적인 정수PATH무지개 토토 어레이의 끝에서 카운트.

무지개 토토b_set ( '[ "f1": 1, "f2": null, 2, null, 3]', '0, f1', '[2,3,4]', false)

무지개 토토B_SET ( '[ "f1": 1, "f2": null, 2]', '0, f3', '[2,3,4]')

[ "f1": [2,3,4], "f2": null, 2, null, 3]

[ "f1": 1, "f2": null, "f3": [2, 3, 4], 2]

무지개 토토B_INSERT (대상 무지개 토토B, PATH TEXT [], NEW_VALUE 무지개 토토B [, insert_after boolean])

무지개 토토B

반환대상withnew_value삽입. 만약에대상섹션에 의해 지정된 섹션PATHjsonb 배열에 있습니다.new_value대상 전 또는 IF 이후에 삽입됩니다insert_aftertrue (기본값은거짓). 만약에대상섹션에 의해 지정된 섹션PATH무지개 토토b 객체에 있습니다.new_value대상존재하지 않습니다. 경로 지향 연산자와 마찬가지로,에 나타나는 부정적인 정수PATH무지개 토토 어레이의 끝에서 카운트.

무지개 토토B_INSERT ( ' "a": [0,1,2]', 'a, 1', ' "new_value"')

무지개 토토B_INSERT ( ' "a": [0,1,2]', 'a, 1', ' "new_value"', true)

"a": [0, "new_value", 1, 2]

"a": [0, 1, "new_value", 2]

무지개 토토B_PRETTY (FROM_무지개 토토 무지개 토토B)

텍스트

반환From_무지개 토토들여 쓰기 무지개 토토 텍스트 무지개 토토b_pretty ( '[ "f1": 1, "f2": null, 2, null, 3]')
[

        "F1": 1,
        "F2": NULL
    ,
    2,
    널,
    3
]

Note

이러한 기능과 연산자 중 다수는 무지개 토토 문자열의 유니 코드 이스케이프를 적절한 단일 문자로 변환합니다. 입력이 유형 인 경우 문제가 아닌 경우무지개 토토B, 전환이 이미 완료 되었기 때문에; 하지만무지개 토토입력, 이로 인해 오류가 발생할 수 있습니다.PostgreSQL : 문서 : 11 : 8.14. 윈 토토 유형.

Note

함수무지개 토토 [B] _populate_record, 무지개 토토 [B] _populate_recordset, 44625_44644and무지개 토토 [B] _TO_RECORDSET무지개 토토 객체 또는 객체 배열에서 작동하고 이름이 출력 행 유형의 열 이름과 일치하는 키와 관련된 값을 추출합니다. 출력 열 이름에 해당하지 않는 객체 필드는 무시되며 객체 필드와 일치하지 않는 출력 열에는 널로 채워집니다. 무지개 토토 값을 SQL 유형의 출력 열로 변환하려면 다음 규칙이 순서대로 적용됩니다.

  • 무지개 토토 NULL 값은 모든 경우에 SQL NULL로 변환됩니다.

  • 출력 열이 유형 인 경우무지개 토토또는무지개 토토B, 무지개 토토 값은 정확히 재현됩니다.

  • 출력 열이 복합 (행) 유형이고 무지개 토토 값이 무지개 토토 객체 인 경우 객체의 필드는이 규칙의 재귀 적 응용에 의해 출력 행 유형의 열로 변환됩니다..

  • 마찬가지로 출력 열이 배열 유형이고 무지개 토토 값이 무지개 토토 배열 인 경우 무지개 토토 배열의 요소는이 규칙의 재귀 적 적용에 의해 출력 배열의 요소로 변환됩니다..

  • 그렇지 않으면, 무지개 토토 값이 문자열 리터럴 인 경우 문자열의 내용은 열의 데이터 유형의 입력 변환 함수에 공급됩니다..

  • 그렇지 않으면, 무지개 토토 값의 일반 텍스트 표현은 열의 데이터 유형의 입력 변환 함수에 공급됩니다.

이러한 함수의 예제는 상수를 사용하는 반면, 일반적인 사용은에서 테이블을 참조하는 것입니다.From절 중 하나를 사용하고 그 중 하나를 사용하십시오무지개 토토또는무지개 토토B함수에 대한 인수로서 열. 그런 다음 추출 된 주요 값은 쿼리의 다른 부분에서 참조 할 수 있습니다.어디조항 및 대상 목록. 이러한 방식으로 여러 값을 추출하면 키 당 연산자와 별도로 추출하는 것보다 성능이 향상 될 수 있습니다.

Note

의 모든 항목PATH매개 변수무지개 토토B_SET뿐만 아니라무지개 토토B_INSERT마지막 항목을 제외하고대상. 만약에create_missing거짓입니다.PATH매개 변수​​무지개 토토B_SET있어야합니다. 이러한 조건이 충족되지 않으면대상변경되지 않은 것으로 반환됩니다.

마지막 경로 항목이 객체 키 인 경우, 새로운 값이 없으면 생성됩니다. 마지막 경로 항목이 배열 인덱스 인 경우 양수 인 경우 설정할 항목은 왼쪽에서 계산하여 찾아서 오른쪽에서 계산하여 음수 인 경우 --1가장 오른쪽 요소 등을 지정합니다. 항목이 범위를 벗어난 경우 -array_length.

Note

the무지개 토토_TYPEOF기능NULL반환 값은 SQL NULL과 혼동해서는 안됩니다. 전화하는 동안무지개 토토_typeof ( 'null':: 무지개 토토)복귀 할 것입니다NULL, Calling무지개 토토_typeof (null :: 무지개 토토)SQL NULL을 반환합니다.

Note

인수의 경우무지개 토토_STRIP_NULLS모든 객체에 중복 필드 이름이 포함되어 있으므로 결과는 발생하는 순서에 따라 의미 적으로 다소 다를 수 있습니다. 이것은에 대한 문제가 아닙니다.무지개 토토B_STRIP_NULLS이후무지개 토토B값은 중복 객체 필드 이름이 없습니다.