이 섹션에서는 다음을 설명합니다.
롤 토토 데이터 처리 및 생성을 위한 함수 및 연산자
SQL/롤 토토 경로 언어
SQL 환경 내에서 롤 토토 데이터 유형에 대한 기본 지원을 제공하려면,포스트그레SQL다음을 구현합니다SQL/롤 토토 데이터 모델. 이 모델은 일련의 항목으로 구성됩니다. 각 항목은 추가 SQL/롤 토토 null 값과 롤 토토 배열 및 개체를 사용하는 복합 데이터 구조를 포함한 SQL 스칼라 값을 보유할 수 있습니다. 모델은 롤 토토 사양에 포함된 데이터 모델을 형식화한 것입니다.RFC 7159.
SQL/롤 토토을 사용하면 다음을 포함한 트랜잭션 지원을 통해 일반 SQL 데이터와 함께 롤 토토 데이터를 처리할 수 있습니다.
롤 토토 데이터를 데이터베이스에 업로드하고 이를 일반 SQL 열에 문자 또는 바이너리 문자열로 저장합니다.
관계형 데이터에서 롤 토토 개체 및 배열 생성.
SQL/롤 토토 쿼리 함수 및 SQL/롤 토토 경로 언어 표현식을 사용하여 롤 토토 데이터 쿼리.
SQL/롤 토토 표준에 대해 자세히 알아보려면 다음을 참조하세요.[sqltr-19075-6]. 지원되는 롤 토토 유형에 대한 자세한 내용은포스트그레SQL, 참조섹션 8.14.
표 9.45롤 토토 데이터 유형과 함께 사용할 수 있는 연산자를 표시합니다(참조섹션 8.14). 또한, 다음과 같은 일반적인 비교 연산자는표 9.1다음에 사용할 수 있습니다.롤 토토b, 하지만롤 토토. 비교 연산자는 다음에 설명된 B-트리 작업의 순서 규칙을 따릅니다.섹션 8.14.4. 또한 참조하세요PostgreSQL : 문서 : 16 : 9.21. 스포츠 토토 베트맨 기능집계 함수용롤 토토_agg레코드 값을 집계 함수인 롤 토토으로 집계합니다.롤 토토_object_agg값 쌍을 롤 토토 객체로 집계하고 해당롤 토토b등가물,롤 토토b_agg그리고롤 토토b_object_agg.
표 9.45. 롤 토토그리고롤 토토b연산자
|
운영자 설명 예제 |
|---|
|
추출물
|
|
주어진 키로 롤 토토 개체 필드를 추출합니다.
|
|
추출물
|
|
다음과 같이 주어진 키를 사용하여 롤 토토 개체 필드를 추출합니다.
|
|
지정된 경로에서 롤 토토 하위 개체를 추출합니다. 여기서 경로 요소는 필드 키 또는 배열 인덱스일 수 있습니다.
|
|
지정된 경로에서 롤 토토 하위 개체를 다음과 같이 추출합니다.
|
필드/요소/경로 추출 연산자는 롤 토토 입력에 요청과 일치하는 올바른 구조가 없는 경우 실패하지 않고 NULL을 반환합니다. 예를 들어 해당 키나 배열 요소가 없는 경우입니다.
일부 추가 연산자는 다음 용도로만 존재합니다.롤 토토b, 다음과 같이표 9.46. 섹션 8.14.4이러한 연산자를 사용하여 색인을 효과적으로 검색하는 방법을 설명합니다.롤 토토b데이터.
표 9.46. 추가롤 토토b운영자
|
운영자 설명 예 |
|---|
|
첫 번째 롤 토토 값에 두 번째 값이 포함되어 있습니까? (참조섹션 8.14.3격리에 대한 자세한 내용은.)
|
|
첫 번째 롤 토토 값이 두 번째 값에 포함되어 있습니까?
|
|
텍스트 문자열이 롤 토토 값 내에서 최상위 키 또는 배열 요소로 존재합니까?
|
|
텍스트 배열의 문자열 중 최상위 키 또는 배열 요소로 존재하는 문자열이 있습니까?
|
|
텍스트 배열의 모든 문자열이 최상위 키 또는 배열 요소로 존재합니까?
|
|
두 개를 연결합니다
배열을 다른 배열에 단일 항목으로 추가하려면 배열의 추가 레이어로 포장하십시오. 예:
|
|
롤 토토 개체에서 키(및 해당 값)를 삭제하거나 롤 토토 배열에서 일치하는 문자열 값을 삭제합니다.
|
|
왼쪽 피연산자에서 일치하는 모든 키 또는 배열 요소를 삭제합니다.
|
|
지정된 인덱스를 가진 배열 요소를 삭제합니다(음의 정수는 끝부터 계산됩니다). 롤 토토 값이 배열이 아닌 경우 오류가 발생합니다.
|
|
지정된 경로에서 필드 또는 배열 요소를 삭제합니다. 여기서 경로 요소는 필드 키 또는 배열 인덱스일 수 있습니다.
|
|
롤 토토 경로는 지정된 롤 토토 값에 대한 항목을 반환합니까?
|
|
지정된 롤 토토 값에 대한 롤 토토 경로 조건자 검사 결과를 반환합니다. 결과의 첫 번째 항목만 고려됩니다. 결과가 부울이 아니면
|
그롤 토토path연산자@?그리고@@다음 오류를 억제합니다: 개체 필드 또는 배열 요소 누락, 예상치 못한 롤 토토 항목 유형, 날짜 시간 및 숫자 오류.롤 토토path27878_28060
표 9.47구성에 사용할 수 있는 함수를 표시롤 토토그리고롤 토토b값. 이 표의 일부 함수에는돌아오는 중28433_28502롤 토토, 롤 토토b, 바이테아, 문자열 유형(텍스트, 문자또는varchar) 또는 캐스트할 수 있는 유형롤 토토. 기본적으로는롤 토토유형이 반환되었습니다.
표 9.47. 롤 토토 생성 함수
|
기능 설명 예제 |
|---|
|
모든 SQL 값을 다음으로 변환합니다.
|
|
SQL 배열을 롤 토토 배열로 변환합니다. 동작은 다음과 같습니다.
|
|
다음 시리즈 중 하나에서 롤 토토 배열을 구성합니다.
|
|
SQL 복합 값을 롤 토토 개체로 변환합니다. 동작은 다음과 같습니다.
|
|
가변 인수 목록에서 이종 유형의 롤 토토 배열을 구축합니다. 각 인수는 다음과 같이 변환됩니다.
|
|
가변 인수 목록에서 롤 토토 개체를 만듭니다. 관례적으로 인수 목록은 교대로 키와 값으로 구성됩니다. 주요 인수는 텍스트로 강제 변환됩니다. 값 인수는 다음과 같이 변환됩니다.
|
|
주어진 모든 키/값 쌍의 롤 토토 개체를 구성하거나, 아무것도 제공되지 않은 경우 빈 개체를 구성합니다.
|
|
텍스트 배열에서 롤 토토 개체를 만듭니다. 배열에는 짝수의 멤버가 포함된 정확히 1차원(이 경우 대체 키/값 쌍으로 간주됨)이 있거나, 각 내부 배열에 정확히 2개의 요소가 포함되어 키/값 쌍으로 간주되는 2차원이 있어야 합니다. 모든 값은 롤 토토 문자열로 변환됩니다.
|
|
이 형태는
|
|
[a]예를 들어,PostgreSQL : 문서 : 16 : F.18. 토토 커뮤니티 - 토토 커뮤니티 키/값 데이터 유형확장 프로그램이 다음에서 캐스트되었습니다. |
표 9.48롤 토토 테스트를 위한 SQL/롤 토토 기능을 자세히 설명합니다.
표 9.48. SQL/롤 토토 테스트 함수
표 9.49처리에 사용할 수 있는 기능을 표시합니다.롤 토토그리고롤 토토b값.
표 9.49. 롤 토토 처리 함수
|
기능 설명 예 |
|---|
|
최상위 롤 토토 배열을 롤 토토 값 세트로 확장합니다.
값 ----------- 1 사실 [2,거짓] |
|
최상위 롤 토토 배열을 다음 세트로 확장합니다.
값 ----------- 푸 바 |
|
최상위 롤 토토 배열의 요소 수를 반환합니다.
|
|
최상위 롤 토토 개체를 키/값 쌍 세트로 확장합니다.
키 | 가치 ------+------- | "푸" 비 | "바" |
|
최상위 롤 토토 개체를 키/값 쌍 세트로 확장합니다. 반환된
키 | 가치 ------+------- | 푸 비 | 바 |
|
지정된 경로에서 롤 토토 하위 개체를 추출합니다. (이것은 기능적으로 다음과 동일합니다.
|
|
지정된 경로에서 롤 토토 하위 개체를 다음과 같이 추출합니다.
|
|
최상위 롤 토토 객체의 키 세트를 반환합니다.
롤 토토_object_keys ------------------ f1 f2 |
|
최상위 롤 토토 개체를 복합 유형이 있는 행으로 확장합니다. 롤 토토 값을 출력 열의 SQL 유형으로 변환하려면 다음 규칙이 순서대로 적용됩니다.
아래 예에서는 상수 롤 토토 값을 사용하지만 일반적으로 다음을 참조하는 데 사용됩니다.
a | 비 | ㄷ ---+------------+------------- 1 | 2,"a b" | (4,"a b c") |
|
객체의 최상위 롤 토토 배열을 복합 유형을 갖는 행 세트로 확장합니다.
a | 비 ---+--- 1 | 2 3 | 4 |
|
최상위 롤 토토 객체를 다음으로 정의된 복합 유형이 있는 행으로 확장합니다.
a | 비 | c | 디 | 아르 ---+---------+---------+---+--------------- 1 | [1,2,3] | 1,2,3 | | (123,"abc") |
|
객체의 최상위 롤 토토 배열을 다음으로 정의된 복합 유형이 있는 행 집합으로 확장합니다.
a | 비 ---+----- 1 | 푸 2 | |
|
반품
|
|
만약
|
|
반품
|
|
주어진 롤 토토 값에서 null 값을 갖는 모든 개체 필드를 반복적으로 삭제합니다. 개체 필드가 아닌 Null 값은 그대로 유지됩니다.
|
|
롤 토토 경로가 지정된 롤 토토 값에 대한 항목을 반환하는지 확인합니다. 만약
|
|
지정된 롤 토토 값에 대한 롤 토토 경로 조건자 검사 결과를 반환합니다. 결과의 첫 번째 항목만 고려됩니다. 결과가 부울이 아니면
|
|
지정된 롤 토토 값에 대해 롤 토토 경로에서 반환된 모든 롤 토토 항목을 반환합니다. 선택사항
롤 토토b_path_query ------------------ 2 3 4 |
|
지정된 롤 토토 값에 대해 롤 토토 경로에서 반환된 모든 롤 토토 항목을 롤 토토 배열로 반환합니다. 선택사항
|
|
지정된 롤 토토 값에 대해 롤 토토 경로에서 반환된 첫 번째 롤 토토 항목을 반환합니다. 반품
|
|
이러한 기능은 위에서 설명한 기능과 동일하게 작동합니다.
|
|
주어진 롤 토토 값을 보기 좋게 인쇄되고 들여쓰기된 텍스트로 변환합니다.
[
"f1": 1,
"f2": null
,
2
]
|
|
최상위 롤 토토 값의 유형을 텍스트 문자열로 반환합니다. 가능한 유형은 다음과 같습니다.
|
SQL/롤 토토 경로 표현식은 XML에 대한 SQL 액세스에 사용되는 XPath 표현식과 유사하게 롤 토토 데이터에서 검색할 항목을 지정합니다. 에서포스트그레SQL, 경로 표현식은 다음과 같이 구현됩니다.롤 토토path데이터 유형이며 다음에 설명된 모든 요소를 사용할 수 있습니다.섹션 8.14.7.
롤 토토 쿼리 함수 및 연산자는 제공된 경로 표현식을 다음으로 전달합니다.경로 엔진평가용. 표현식이 쿼리된 롤 토토 데이터와 일치하는 경우 해당 롤 토토 항목 또는 항목 집합이 반환됩니다. 경로 표현식은 SQL/롤 토토 경로 언어로 작성되며 산술 표현식과 함수를 포함할 수 있습니다.
경로 표현식은 다음에서 허용하는 일련의 요소로 구성됩니다.롤 토토path데이터 유형. 경로 표현식은 일반적으로 왼쪽에서 오른쪽으로 평가되지만 괄호를 사용하여 작업 순서를 변경할 수 있습니다. 평가가 성공하면 일련의 롤 토토 항목이 생성되고 평가 결과는 지정된 계산을 완료하는 롤 토토 쿼리 함수로 반환됩니다.
쿼리 중인 롤 토토 값을 참조하려면(컨텍스트 항목), 다음을 사용하세요.$경로 표현식의 변수입니다. 다음에는 하나 이상이 올 수 있습니다.접속자 연산자은 롤 토토 구조를 수준별로 내려가 컨텍스트 항목의 하위 항목을 검색합니다. 뒤따르는 각 연산자는 이전 평가 단계의 결과를 처리합니다.
예를 들어, 분석하고 싶은 GPS 추적기의 롤 토토 데이터가 있다고 가정해 보겠습니다.
"추적":
"세그먼트": [
"위치": [ 47.763, 13.4034 ],
"시작 시간": "2018-10-14 10:05:14",
"HR": 73
,
"위치": [ 47.706, 13.2635 ],
"시작 시간": "2018-10-14 10:39:21",
"HR": 135
]
사용 가능한 트랙 세그먼트를 검색하려면 다음을 사용해야 합니다..주변 롤 토토 객체를 통해 내려오는 접근자 연산자:키
$.track.segments
배열의 내용을 검색하려면 일반적으로 다음을 사용합니다.[*]연산자. 예를 들어 다음 경로는 사용 가능한 모든 트랙 세그먼트에 대한 위치 좌표를 반환합니다.
$.track.segments[*].location
첫 번째 세그먼트의 좌표만 반환하려면 다음에서 해당 첨자를 지정할 수 있습니다.[]접속자 연산자. 롤 토토 배열 인덱스는 0을 기준으로 한다는 점을 기억하세요.
$.track.segments[0].location
각 경로 평가 단계의 결과는 하나 이상에서 처리될 수 있습니다.롤 토토path다음에 나열된 연산자 및 메소드섹션 9.16.2.2. 각 메소드 이름 앞에는 점이 와야 합니다. 예를 들어 배열의 크기를 얻을 수 있습니다.
$.track.segments.size()
사용의 추가 예롤 토토path경로 표현식 내의 연산자와 메소드는 아래에 나타납니다.섹션 9.16.2.2.
경로를 정의할 때 하나 이상의 경로를 사용할 수도 있습니다.필터 표현식이것은 다음과 유사하게 작동합니다어디89389_89495
? (조건)
필터 표현식은 적용해야 하는 경로 평가 단계 직후에 작성되어야 합니다. 해당 단계의 결과는 제공된 조건을 충족하는 항목만 포함하도록 필터링됩니다. SQL/롤 토토은 3개의 값을 갖는 논리를 정의하므로 조건은 다음과 같습니다.사실, 거짓, 또는알 수 없음.알 수 없음값은 SQL과 동일한 역할을 합니다NULL그리고 다음을 사용하여 테스트할 수 있습니다.알 수 없음술어. 추가 경로 평가 단계에서는 필터 표현식이 반환된 항목만 사용합니다.사실.
필터 표현식에 사용할 수 있는 함수와 연산자는 다음에 나열되어 있습니다.표 9.51. 필터 표현식 내에서@변수는 필터링되는 값(즉, 이전 경로 단계의 결과 중 하나)을 나타냅니다. 다음에 접근자 연산자를 작성할 수 있습니다.@구성요소 항목을 검색합니다.
예를 들어, 130보다 높은 모든 심박수 값을 검색한다고 가정합니다. 다음 표현식을 사용하여 이를 달성할 수 있습니다:
$.track.segments[*].HR ? (@ 130)
이러한 값을 가진 세그먼트의 시작 시간을 얻으려면 시작 시간을 반환하기 전에 관련 없는 세그먼트를 필터링해야 하므로 필터 표현식은 이전 단계에 적용되고 조건에 사용된 경로는 다릅니다.
$.track.segments[*] ? (@.HR 130)."시작 시간"
필요한 경우 여러 필터 표현식을 순서대로 사용할 수 있습니다. 예를 들어 다음 표현식은 관련 좌표와 높은 심박수 값이 있는 위치를 포함하는 모든 세그먼트의 시작 시간을 선택합니다.
$.track.segments[*] ? (@.location[1] < 13.4) ? (@.HR 130)."시작 시간"
다른 중첩 수준에서 필터 표현식을 사용하는 것도 허용됩니다. 다음 예에서는 먼저 모든 세그먼트를 위치별로 필터링한 다음 가능한 경우 이러한 세그먼트에 대한 높은 심박수 값을 반환합니다.
$.track.segments[*] ? (@.location[1] < 13.4).HR ? (@ 130)
또한 필터 표현식을 서로 중첩할 수 있습니다.
$.track ? (존재(@.segments[*] ? (@.HR 130))).segments.size()
이 표현식은 심박수 값이 높은 세그먼트가 포함된 경우 트랙의 크기를 반환하고, 그렇지 않은 경우 빈 시퀀스를 반환합니다.
포스트그레SQL의 SQL/롤 토토 경로 언어 구현에는 SQL/롤 토토 표준과 다음과 같은 차이가 있습니다.
SQL/롤 토토 표준은 필터에서만 조건자를 허용하지만 경로 표현식은 부울 조건자가 될 수 있습니다. 이는 다음을 구현하는 데 필요합니다.@@연산자. 예를 들어 다음과 같습니다.롤 토토path표현식은 다음에서 유효합니다.PostgreSQL:
$.track.segments[*].HR < 70
다음에 사용된 정규식 패턴의 해석에는 약간의 차이가 있습니다.like_regex필터, 설명된 대로섹션 9.16.2.3.
롤 토토 데이터를 쿼리할 때 경로 표현식이 실제 롤 토토 데이터 구조와 일치하지 않을 수 있습니다. 존재하지 않는 개체 멤버나 배열 요소에 액세스하려고 하면 구조적 오류가 발생합니다. SQL/롤 토토 경로 표현식에는 구조적 오류를 처리하는 두 가지 모드가 있습니다.
lax(기본값) — 경로 엔진은 쿼리된 데이터를 지정된 경로에 암시적으로 적용합니다. 나머지 구조적 오류는 모두 억제되고 빈 SQL/롤 토토 시퀀스로 변환됩니다.
strict — 구조적 오류가 발생하면 오류가 발생합니다.
lax 모드는 롤 토토 데이터가 예상 스키마와 일치하지 않는 경우 롤 토토 문서 구조와 경로 표현의 일치를 용이하게 합니다. 피연산자가 특정 작업의 요구 사항과 일치하지 않는 경우 이 작업을 수행하기 전에 해당 요소를 SQL/롤 토토 시퀀스로 변환하여 자동으로 SQL/롤 토토 배열로 래핑되거나 래핑 해제될 수 있습니다. 게다가 비교 연산자는 lax 모드에서 피연산자를 자동으로 풀기 때문에 SQL/롤 토토 배열을 즉시 비교할 수 있습니다. 크기가 1인 배열은 해당 배열의 유일한 요소와 동일한 것으로 간주됩니다. 자동 언래핑은 다음과 같은 경우에만 수행되지 않습니다.
경로 표현식에는 다음이 포함됩니다.유형()또는크기()각각 배열의 요소 유형과 수를 반환하는 메서드.
조회된 롤 토토 데이터에 중첩 배열이 포함되어 있습니다. 이 경우 가장 바깥쪽 배열만 래핑 해제되고 모든 내부 배열은 변경되지 않습니다. 따라서 암시적 언래핑은 각 경로 평가 단계 내에서 한 수준 아래로만 내려갈 수 있습니다.
예를 들어 위에 나열된 GPS 데이터를 쿼리할 때 lax 모드를 사용할 때 세그먼트 배열을 저장한다는 사실을 추상화할 수 있습니다.
lax $.track.segments.location
엄격 모드에서 SQL/롤 토토 항목을 반환하려면 지정된 경로가 쿼리된 롤 토토 문서의 구조와 정확히 일치해야 하므로 이 경로 표현식을 사용하면 오류가 발생합니다. lax 모드에서와 동일한 결과를 얻으려면 명시적으로 포장을 풀어야 합니다.세그먼트배열:
엄격 $.track.segments[*].location
그.**접속자는 lax 모드를 사용할 때 놀라운 결과를 초래할 수 있습니다. 예를 들어 다음 쿼리는 다음을 선택합니다.인사값을 두 번:
느슨한 $.**.HR
이것은 다음 때문에 발생합니다..**접속자는 두 가지를 모두 선택합니다세그먼트배열과 그 각 요소, 반면.HR접속자는 lax 모드를 사용할 때 자동으로 배열을 펼칩니다. 놀라운 결과를 피하려면 다음을 사용하는 것이 좋습니다..**엄격 모드에서만 접속자. 다음 쿼리는 각각을 선택합니다.인사값은 한 번만:
엄격 $.**.HR
표 9.50다음에서 사용할 수 있는 연산자 및 메소드를 표시합니다.롤 토토path. 단항 연산자와 메서드는 이전 경로 단계에서 발생한 여러 값에 적용될 수 있지만 이진 연산자(더하기 등)는 단일 값에만 적용될 수 있습니다.
표 9.50. 롤 토토path연산자 및 방법
|
연산자/메소드 설명 예 |
|---|
|
추가
|
|
단항 더하기(연산 없음); 추가와 달리 여러 값을 반복할 수 있습니다.
|
|
뺄셈
|
|
부정; 빼기와 달리 여러 값을 반복할 수 있습니다.
|
|
곱셈
|
|
부서
|
|
모듈로(나머지)
|
|
롤 토토 항목 유형(참조
|
|
롤 토토 항목의 크기(배열 요소 수 또는 배열이 아닌 경우 1)
|
|
롤 토토 숫자 또는 문자열에서 변환된 대략적인 부동 소수점 숫자
|
|
주어진 숫자보다 크거나 같은 가장 가까운 정수
|
|
주어진 숫자보다 작거나 같은 가장 가까운 정수
|
|
주어진 숫자의 절대값
|
|
문자열에서 변환된 날짜/시간 값
|
|
지정된 문자열을 사용하여 문자열에서 변환된 날짜/시간 값
|
|
세 개의 필드를 포함하는 객체 배열로 표현되는 객체의 키-값 쌍:
|
다음의 결과 유형날짜시간()그리고날짜/시간(방법은 다음과 같습니다템플릿)날짜, timetz, 시간, timestamptz, 또는타임스탬프. 두 메서드 모두 결과 유형을 동적으로 결정합니다.
그날짜시간()메소드는 입력 문자열을 다음에 대한 ISO 형식과 일치시키려고 순차적으로 시도합니다.날짜, timetz, 시간, timestamptz및타임스탬프. 첫 번째로 일치하는 형식에서 중지하고 해당 데이터 유형을 내보냅니다.
그날짜/시간(메소드는 제공된 템플릿 문자열에 사용된 필드에 따라 결과 유형을 결정합니다.템플릿)
그날짜시간()그리고날짜/시간(메소드는 동일한 구문 분석 규칙을 사용합니다.템플릿)to_timestampSQL 함수는 다음을 수행합니다(참조PostgreSQL : 문서 : 16 : 9.8. 데이터 유형 스포츠 토토 결과 스포츠 토토 결과 기능), 세 가지 예외가 있습니다. 첫째, 이러한 방법은 일치하지 않는 템플릿 패턴을 허용하지 않습니다. 둘째, 템플릿 문자열에는 빼기 기호, 마침표, 사선(슬래시), 쉼표, 아포스트로피, 세미콜론, 콜론 및 공백과 같은 구분 기호만 허용됩니다. 셋째, 템플릿 문자열의 구분 기호는 입력 문자열과 정확히 일치해야 합니다.
다른 날짜/시간 유형을 비교해야 하는 경우 암시적 형변환이 적용됩니다. 갑날짜값은 다음으로 변환될 수 있습니다.타임스탬프또는timestamptz, 타임스탬프다음으로 전송 가능timestamptz및시간에timetz. 그러나 첫 번째 변환을 제외한 모든 변환은 현재에 따라 달라집니다.시간대설정이므로 시간대 인식 내에서만 수행될 수 있습니다.롤 토토path함수.
표 9.51사용 가능한 필터 표현식 요소를 표시합니다.
표 9.51. 롤 토토path필터 표현식 요소
|
술어/값 설명 예 |
|---|
|
동일성 비교(이 비교 연산자와 다른 비교 연산자는 모든 롤 토토 스칼라 값에 대해 작동함)
|
|
비동등 비교
|
|
미만 비교
|
|
작거나 같음 비교
|
|
보다 큼 비교
|
|
크거나 같음 비교
|
|
롤 토토 상수
|
|
롤 토토 상수
|
|
롤 토토 상수
|
|
부울 AND
|
|
부울 OR
|
|
부울 NOT
|
|
부울 조건이 다음과 같은지 테스트합니다.
|
|
첫 번째 피연산자가 두 번째 피연산자가 제공한 정규식과 일치하는지 여부를 테스트합니다. 선택적으로 다음 문자열로 설명된 수정 사항을 적용합니다.
|
|
두 번째 피연산자가 첫 번째 피연산자의 초기 부분 문자열인지 테스트합니다.
|
|
경로 표현식이 하나 이상의 SQL/롤 토토 항목과 일치하는지 테스트합니다. 반품
|
SQL/롤 토토 경로 표현식을 사용하면 텍스트를 다음과 같은 정규 표현식과 일치시킬 수 있습니다.like_regex필터. 예를 들어 다음 SQL/롤 토토 경로 쿼리는 영어 모음으로 시작하는 배열의 모든 문자열과 대소문자를 구분하지 않고 일치합니다.
$[*] ? (@ like_regex "^[aeiou]" 플래그 "i")
선택사항플래그문자열에는 하나 이상의 문자가 포함될 수 있습니다.i대소문자를 구분하지 않는 일치의 경우,m허용하다^그리고$개행 문자와 일치하도록,s허용하다.개행 문자와 일치하고q전체 패턴을 인용합니다(동작을 간단한 하위 문자열 일치로 축소).
SQL/롤 토토 표준은 다음에서 정규 표현식에 대한 정의를 차용합니다.LIKE_REGEX연산자이며 이는 XQuery 표준을 사용합니다. PostgreSQL은 현재 다음을 지원하지 않습니다.LIKE_REGEX연산자. 그러므로,like_regex필터는 다음에 설명된 POSIX 정규식 엔진을 사용하여 구현됩니다.섹션 9.7.3. 이로 인해 표준 SQL/롤 토토 동작과 여러 가지 사소한 불일치가 발생합니다. 이에 대한 목록은 다음과 같습니다.섹션 9.7.3.8. 그러나 여기에 설명된 플래그 문자 비호환성은 SQL/롤 토토에 적용되지 않습니다. SQL/롤 토토은 POSIX 엔진이 예상하는 것과 일치하도록 XQuery 플래그 문자를 변환하기 때문입니다.
다음의 패턴 인수를 명심하십시오.like_regex은(는) 다음에 제공된 규칙에 따라 작성된 롤 토토 경로 문자열 리터럴입니다.섹션 8.14.7. 이는 특히 정규 표현식에 사용하려는 백슬래시를 두 배로 늘려야 함을 의미합니다. 예를 들어, 숫자만 포함하는 루트 문서의 문자열 값을 일치시키려면 다음을 수행하십시오.
$.* ? (@ like_regex "^\\d+$")
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.