롤 토토 : 문서 : 9.5 : 롤 토토 9.5 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.5 : 윈 토토 기능 | PostgreSQL : 문서 : 9.5 : 젠 토토 및 연산자 | 제 9 장 기능 및 연산자 | PostgreSQL : 문서 : 9.5 : 토토 핫 조작 함수 |
표 9-40두 토토 사이트 데이터 유형과 함께 사용할 수있는 연산자를 보여줍니다 (참조PostgreSQL : 문서 : 9.5 : 무지개 토토 유형).
표 9-40.토토 사이트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 |
참고 :이 연산자의 평행 변형은 두 가지 모두토토 사이트and토토 사이트B유형. 필드/요소/경로 추출 연산자는 왼쪽 입력과 동일한 유형을 반환합니다 (하나토토 사이트또는토토 사이트B), 반환으로 지정된 것을 제외하고.텍스트, 값을 텍스트로 강요합니다. 토토 사이트 입력에 요청과 일치 할 올바른 구조가없는 경우 필드/요소/경로 추출 연산자는 실패하지 않고 NULL을 반환합니다. 예를 들어 그러한 요소가 존재하지 않는 경우. 정수 토토 사이트 배열 위트 스크립트를 허용하는 필드/요소/경로 추출 연산자는 모두 배열 끝에서 음수 첨자를 지원합니다.
표준 비교 연산자표 9-1토토 사이트B그러나토토 사이트. 그들은 다음에 요약 된 B-tree 운영에 대한 주문 규칙을 따릅니다섹션 8.14.4.
일부 추가 연산자도에만 존재합니다토토 사이트B,표 9-41. 이러한 연산자 중 다수는에 의해 색인을 색인화 할 수 있습니다.토토 사이트B운영자 클래스. 에 대한 전체 설명토토 사이트B격리 및 존재 의미, 참조섹션 8.14.3. 섹션 8.14.4이러한 연산자가 효과적으로 색인을 사용하는 방법을 설명합니다토토 사이트B데이터.
표 9-41. 추가의토토 사이트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' |
- | Integer | 지정된 인덱스로 배열 요소를 삭제합니다 (끝에서 음수 정수 수). 최상위 컨테이너가 배열이 아닌 경우 오류를 던집니다. | '[ "A", "B"]':: 토토 사이트B -1 |
#- | Text [] | 지정된 경로로 필드 또는 요소를 삭제합니다 (토토 사이트 어레이의 경우 끝까지 음수 정수 수) | '[ "a", "b": 1]':: jsonb #- '1, b' |
참고 :the||연산자는 키의 결합을 포함하는 객체를 생성하여 두 개의 토토 사이트 객체를 연결하여 중복 키가있을 때 두 번째 객체의 값을 취합니다. 다른 모든 경우는 토토 사이트 어레이를 생성합니다. 첫째, 비 어레이 입력이 단일 요소 배열로 변환 된 다음 두 배열이 연결됩니다. 그것은 재귀 적으로 작동하지 않습니다. 최상위 배열 또는 객체 구조 만 병합됩니다.
표 9-42작성에 사용할 수있는 기능을 표시토토 사이트and토토 사이트B값. (에 대한 동등한 함수는 없습니다토토 사이트B,row_to_토토 사이트andarray_to_토토 사이트함수. 그러나TO_토토 사이트B함수는 이러한 함수와 거의 동일한 기능을 제공합니다.)
표 9-42. 토토 사이트 제작 기능
기능 | 설명 | example | 예제 결과 |
---|---|---|---|
TO_토토 사이트 (Anylement) TO_토토 사이트B (Anylement) |
값을 다시 반환합니다토토 사이트또는토토 사이트B. 배열 및 복합재는 어레이 및 객체로 (재귀 적으로) 변환됩니다. 그렇지 않으면 유형에서로 캐스트가있는 경우토토 사이트, 캐스트 함수는 변환을 수행하는 데 사용됩니다. 그렇지 않으면 스칼라 값이 생성됩니다. 숫자, 부울 또는 널 값 이외의 스칼라 유형의 경우 텍스트 표현이 유효한 방식으로 사용됩니다토토 사이트또는토토 사이트Bvalue. | TO_토토 사이트 ( '프레드는 "안녕."':: 텍스트) | "프레드는 \"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" |
참고 :
array_to_토토 사이트
androw_to_토토 사이트
to_토토 사이트
꽤 인쇄 옵션을 제공하지 않는 경우. 설명 된 행동to_토토 사이트
마찬가지로 다른 토토 사이트 생성 기능에 의해 변환 된 각 개별 값에 적용됩니다.
참고 :thePostgreSQL : 문서 : 9.5 : 토토 사이트 순위Extension은에서 캐스트되었습니다.hstoreto토토 사이트hstore토토 사이트 생성 함수를 통해 변환 된 값은 원시 문자열 값이 아닌 토토 사이트 객체로 표시됩니다.
표 9-43처리 할 수있는 기능을 표시토토 사이트및토토 사이트B값.
표 9-43. 토토 사이트 처리 기능
기능 | 반환 유형 | 설명 | 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, variadic path_elems text []) jsonb_extract_path_text (from_토토 사이트 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 AYLEMENT, FROM_토토 사이트 토토 사이트) 토토 사이트B_POPULE_RECORD (BASE AYLENMENT, FROM_토토 사이트 토토 사이트B) |
Anylement | 객체를 확장from_토토 사이트열이 열이 정의 된 레코드 유형과 일치하는 행으로Base(아래 참고 참조). | 선택 *에서 토토 사이트_POPULE_RECORD에서 * 선택 *에서 선택하십시오 |
a | 비 ---+--- 1 | 2 |
토토 사이트_POPULE_RECORDSET (BASE AYLENMENT, FROM_토토 사이트 토토 사이트) 토토 사이트B_POPULE_RECORDSET (BASE AYLENMENT, FROM_토토 사이트 토토 사이트B) |
모든 요소 설정 | 객체의 가장 바깥 쪽 배열을 확장합니다from_토토 사이트열이 정의 된 레코드 유형과 일치하는 행 세트에base(아래 참고 참조). | 토토 사이트_populate_recordset에서 * 선택 * 선택 (null :: myrowtype, '[ "a": ":"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")) as x (a int, b text, d text) |
a | B | 디 ---+--------+--- 1 | [1,2,3] | |
토토 사이트_TO_RECORDSET (토토 사이트) 토토 사이트B_TO_RECORDSET (토토 사이트B) |
setof record | 토토 사이트 배열로부터 임의의 레코드 세트를 작성합니다 (아래 참고 참조). 모든 기능이 반환되는 것과 마찬가지로레코드, 발신자는 레코드의 구조를 AN으로 명시 적으로 정의해야합니다as조항 | json_to_recordset에서 * 선택 * 선택 ( '[ "a": 1, "b": "foo", "a": "2", "c": "bar"]')) as as 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 (Target 토토 사이트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_PRETTY (FROM_토토 사이트 토토 사이트B) |
텍스트 |
반환from_토토 사이트들여 쓰기 토토 사이트 텍스트. | 토토 사이트B_PRETTY ( '[ "f1": 1, "f2": null, 2, null, 3] |
[ "F1": 1, "F2": NULL , 2, 널, 3 ] |
참고 :이러한 기능과 연산자 중 다수는 토토 사이트 문자열의 유니 코드 이스케이프를 적절한 단일 문자로 변환합니다. 입력이 유형 인 경우 문제가 아닌 경우토토 사이트B, 전환이 이미 완료 되었기 때문에; 하지만토토 사이트입력, 이로 인해 언급 된대로 오류가 발생할 수 있습니다.PostgreSQL : 문서 : 9.5 : 무지개 토토 유형.
참고 :함수의 예제
토토 사이트_populate_record
,토토 사이트_POPULE_RECORDSET
,토토 사이트_TO_RECORD
and토토 사이트_TO_RECORDSET
상수를 사용하면 일반적인 사용은에서 테이블을 참조하는 것입니다.From절 중 하나를 사용하고 그 중 하나를 사용하십시오토토 사이트또는토토 사이트B함수에 대한 인수로서 열. 그런 다음 추출 된 주요 값은 쿼리의 다른 부분에서 참조 할 수 있습니다.여기서클로즈 및 대상 목록. 이러한 방식으로 여러 값을 추출하면 키 당 연산자와 별도로 추출하는 것보다 성능이 향상 될 수 있습니다.토토 사이트 키는 대상 행 유형의 동일한 열 이름과 일치합니다. 이러한 기능에 대한 토토 사이트 유형 강요는입니다."최고의 노력"일부 유형에 대해 원하는 값을 초래하지 않을 수 있습니다. 대상 행 유형에 나타나지 않는 토토 사이트 필드는 출력에서 생략되며 토토 사이트 필드와 일치하지 않는 대상 열은 단순히 Null입니다.
참고 :의 모든 항목PATH매개 변수토토 사이트B_SET대상,create_missing는 사실입니다.이 경우 마지막 항목을 제외한 모든 항목이 있어야합니다. 이러한 조건이 충족되지 않으면대상변경되지 않은 반품.
마지막 경로 항목이 객체 키 인 경우, 새로운 값이 없으면 생성됩니다. 마지막 경로 항목이 배열 인덱스 인 경우 양수 인 경우 설정할 항목은 왼쪽에서 계산하여 찾아서 오른쪽에서 계산하여 음수 인 경우 --1가장 오른쪽 요소 등을 지정합니다. 항목이 범위를 벗어난 경우 -array_length.
참고 :the토토 사이트_TYPEOF기능NULL반환 값은 SQL NULL과 혼동해서는 안됩니다. 전화하는 동안토토 사이트_typeof ( 'null':: 토토 사이트)returnNULL, 전화토토 사이트_typeof (null :: 토토 사이트)SQL NULL을 반환합니다.
참고 :인수가토토 사이트_STRIP_NULLS모든 객체에 중복 필드 이름을 포함하면 결과가 발생하는 순서에 따라 의미 적으로 다소 다를 수 있습니다. 이것은에 대한 문제가 아닙니다.토토 사이트B_STRIP_NULLS이후토토 사이트B값은 중복 객체 필드 이름이 없습니다.
참조PostgreSQL : 문서 : 9.5 : 토토 사이트 함수집계 함수의 경우토토 사이트_AGG
값을 토토 사이트으로 기록하고 집계 함수토토 사이트_object_agg
토토 사이트 객체에 값의 쌍을 집계하고토토 사이트B등가,토토 사이트B_AGG
and토토 사이트B_OBJECT_AGG
.