PostgreSQL 8.4.22 문서 | ||||
---|---|---|---|---|
이전 | 빠른 뒤로 | 4 장 SQL 통사론 | 빠른 전달 | PostgreSQL : 문서 : 8.4 : 스포츠 토토 베트맨 정의 |
값 토토 핫은 다양한 상황에서 사용됩니다. 의 대상 목록에서select명령, 새 열 값으로삽입또는업데이트또는 검색 조건에서 명령 수. 값 토토 핫의 결과는 때때로입니다 a스칼라, 그것을 구별하기 위해 테이블 토토 핫식 (테이블)의 결과. 값 따라서 토토 핫은라고도합니다.스칼라 토토 핫(또는 간단히토토 핫). 토토 핫식 구문이 허용합니다 산술을 사용하여 원시 부품의 값 계산, 논리, 세트 및 기타 작업.
값 토토 핫식은 다음 중 하나입니다.
상수 또는 문자 적 가치
열 참조
a의 본문에서 위치 매개 변수 참조 함수 정의 또는 준비된 진술
구독 토토 핫식
필드 선택 토토 핫
운영자 호출
함수 호출
집계 토토 핫
창 함수 호출
타입 캐스트
스칼라 하위 쿼리
배열 생성자
행 생성자
이 목록 외에도 많은 구성이 있습니다. 그것은 토토 핫으로 분류 될 수 있지만 아무것도 따르지 않습니다. 일반 구문 규칙. 이것들은 일반적으로 a의 의미를 가지고 있습니다 기능 또는 연산자이며 적절한 것으로 설명됩니다 위치와이즈 토토 : 문서 : 8.4 : 기능 및 연산자. 예는 그만큼is null조항
우리는 이미 상수에 대해 논의했습니다섹션 4.1.2. 다음 섹션에서는 나머지 옵션에 대해 설명합니다.
열은 양식으로 참조 할 수 있습니다.
상관 관계.ColumnName
상관 관계는 a의 이름입니다 테이블 (스키마 이름으로 자격이있을 수 있음) 또는 a에 의해 정의 된 테이블From조항 또는 핵심 단어 중 하나NEW또는old. (NEWandold재 작성 규칙으로 만 표시 될 수 있습니다. 다른 상관 관계 이름은 모든 SQL에서 사용할 수 있습니다. 명령문.) 상관 이름과 분리 점은 될 수 있습니다 열 이름이 모든 테이블에서 고유 한 경우 생략 현재 쿼리에서 사용됩니다. (참조7 장.)
위치 매개 변수 참조는 값을 나타내는 데 사용됩니다. 이는 SQL 문에 외부에서 제공됩니다. 매개 변수입니다 SQL 기능 정의 및 준비된 쿼리에 사용됩니다. 일부 클라이언트 라이브러리는 또한 데이터 값 지정을 별도로 지원합니다 SQL 명령 문자열에서,이 경우 매개 변수가 사용됩니다. 외부 데이터 값을 참조합니다. a의 형태 매개 변수 참조는 다음과 같습니다.
$번호
예를 들어 함수의 정의를 고려하십시오부서
, as :
기능 부서 생성 (텍스트)은 부서를 반환합니다 AS $$ select *에서 from dept where name = $ 1 $$ 언어 SQL;
여기$ 1값을 참조하십시오 기능이있을 때마다 첫 번째 함수 인수 호출.
토토 핫식이 배열 유형의 값을 산출하면 배열 값의 특정 요소는 글쓰기
토토 핫[첨자]
또는 다중 인접 요소 (an"배열 일부분") 쓰기로 추출 할 수 있습니다
토토 핫[lower_subscript:어퍼 _subscript]
(여기, 괄호[]문자 그대로 나타납니다.) 각첨자그 자체는 토토 핫입니다 정수 가치를 산출해야합니다.
일반적으로 배열토토 핫괄호 안에 있어야하지만 토토 핫이 될 때 괄호를 생략 할 수 있습니다 구역은 단지 열 참조 또는 위치 매개 변수입니다. 또한 원본 일 때 여러 개의 첨자를 연결할 수 있습니다 배열은 다차원입니다. 예를 들어:
mytable.arraycolumn [4] mytable.two_d_column [17] [34] $ 1 [10:42] (Arayfunction (A, B)) [42]
마지막 예제의 괄호가 필요합니다. 보다토토 핫 사이트 순위 43_96더 많은 정보 배열.
토토 핫식이 복합 유형의 값을 산출하는 경우 (행 유형), 그런 다음 행의 특정 필드를 추출 할 수 있습니다. 글쓰기
토토 핫.FieldName
일반적으로 행토토 핫괄호 안에 있어야하지만 선택할 수정할 때 괄호를 생략 할 수 있습니다. From은 단지 테이블 참조 또는 위치 매개 변수입니다. 을 위한 예:
mytable.mycolumn $ 1. Somecolumn (rowfunction (a, b)). col3
(따라서 자격을 갖춘 열 참조는 실제로 a입니다 필드 선택 구문의 특별한 경우) 중요 특별 케이스는 테이블 열에서 필드를 추출하는 것입니다. 복합 유형 :
(Compositecol) .Somefield (mytable.compositecol) .Somefield
괄호는 여기를 보여주기 위해 필요합니다Compositecol는 테이블이 아닌 열 이름입니다 이름 또는 그mytable는 테이블입니다 두 번째 케이스에서는 스키마 이름이 아닙니다.
연산자에게는 세 가지 가능한 구문이 있습니다 기도:
토토 핫 운영자 토토 핫(바이너리치기 연산자) |
운영자 토토 핫(단수 접두사 연산자) |
토토 핫 운영자(unery postfix 연산자) |
연산자 (스키마.OperatorName)
어떤 특정 사업자가 존재하고 단독인지 여부 또는 이진은 시스템 또는 사용자.와이즈 토토 : 문서 : 8.4 : 기능 및 연산자내장 운영자를 설명합니다.
함수 호출의 구문은 함수의 이름입니다. (스키마 이름으로 자격이있을 수 있음) 괄호 안에 밀폐 된 인수 목록 :
function_name([토토 핫[, 토토 핫 ... ]])
예를 들어, 다음은 제곱근을 계산합니다 2 :
SQRT (2)
내장 기능 목록이9 장. 다른 기능은 추가 할 수 있습니다 사용자.
an집계 토토 핫행에 걸쳐 집계 기능의 적용 쿼리에 의해 선택되었습니다. 집계 함수는 다중 감소를 감소시킵니다 합 또는 평균과 같은 단일 출력 값에 대한 입력 입력. 집계 토토 핫의 구문은 수행원:
Aggregate_name(토토 핫[, ...])Aggregate_name(All토토 핫[, ...])Aggregate_name(고유 한토토 핫)Aggregate_name( *)
여기서Aggregate_nameis 이전에 정의 된 집계 (스키마로 자격이있을 수 있습니다 이름) 및토토 핫그 자체가 아닌 값 토토 핫은 집계를 포함합니다 토토 핫식 또는 창 함수 호출.
첫 번째 골재 토토 핫 형태는 집계를 호출합니다
주어진 토토 핫식 (들)이 산출하는 모든 입력 행에서
널 값이 아닌 값. (실제로는 집계 기능에 달려 있습니다
널 값을 무시할 것인지 아닌지 - 그러나 모든 표준
두 번째 형태는 첫 번째 형태와 동일합니다.all기본값입니다. 세 번째 형태
모든 뚜렷한 비 널 값에 대한 집계를 호출합니다.
입력 행에서 발견 된 토토 핫식. 마지막 양식은 다음을 호출합니다
널 또는 널에 관계없이 각 입력 행에 대해 한 번 집계
null 값이 아닌 값; 특정 입력 값이 지정되지 않으므로
일반적으로에만 유용합니다.count (*)
집계 기능.
예를 들어count (*)총 입력 행 수;count (f1)입력 행의 수를 생성합니다F1is null;count (별개의 f1)고유 한 수를 산출합니다 의 비 널 값F1.
사전 정의 된 집계 함수는에 설명되어 있습니다.섹션 9.18. 다른 집계 기능은 사용자가 추가 할 수 있습니다.
집계 토토 핫식은 결과 목록에만 나타날 수 있습니다. 또는a 조항select명령. 다른 사람에게는 금지되어 있습니다 조항, 예 :여기서조항은 결과 전에 논리적으로 평가됩니다 골재가 형성됩니다.
집계 토토 핫식이 하위 쿼리에 나타날 때 (참조섹션 4.2.10및PostgreSQL :), 집계는 일반적으로 행을 통해 평가됩니다. 하위 쿼리. 그러나 집계가있는 경우 예외가 발생합니다 인수에는 외부 수준 변수 만 포함됩니다 : 집계 그런 다음 가장 가까운 외부 레벨에 속하며 평가됩니다. 그 쿼리의 행 위에. a로서의 응집체 발현 그런 다음 전체가 나타나는 하위 쿼리의 외부 참조입니다. 그에 대한 한 가지 평가보다 상수 역할을합니다. 하위 퀴어. 결과에만 나타나는 제한 목록 또는조항이 적용됩니다 집계가 속한 쿼리 레벨에 대한 존중.
참고 : PostgreSQL현재 지원하지 않습니다별도의둘 이상의 입력 토토 핫.
a창 함수 호출일부 부분에 걸쳐 응집체 유사 함수의 적용 쿼리에 의해 선택된 줄의. 일반 집계와 달리 함수 호출, 이것은 선택한 그룹의 그룹화와 관련이 없습니다. 단일 출력 행으로의 행 - 각 행은 쿼리 출력. 그러나 창 함수가 스캔 할 수 있습니다 현재 행 그룹의 일부가 될 모든 행 그룹화 사양에 따르면 (파티션 by목록) 창 함수 호출. 창 함수 호출의 구문은 수행원:
function_name([토토 핫[, 토토 핫 ... ]]) 오버Window_name function_name([토토 핫[, 토토 핫 ... ]]) 오버 (Window_definition)function_name( *) OverWindow_name function_name( *) 오버 (Window_definition)
여기서Window_definition구문
[기존_window_name] [파티션토토 핫[, ...]] [주문토토 핫[ASC | desc | 사용운영자] [nulls 첫 번째 | 마지막 ] [, ...] ] [frame_clause]
및 선택 사항frame_clause중 하나 일 수
사전에 생존되지 않은 범위 미리 알려지지 않은 선행과 현재 행 사이의 범위 앞서 언급되지 않은 다음과 무한한 추종자 사이의 범위 우선 순위는 미래의 노동합니다 앞의 비정규직과 현재 행 사이의 행 다음과 무한한 다음과 무한의 줄 사이의 줄
여기,토토 핫자체가 아닌 값 토토 핫식에는 창이 포함되어 있습니다 기능 호출. 그만큼파티션 byand주문 by목록은 본질적으로 있습니다 동일한 구문 및 의미론그룹 by및주문 by전체의 조항 그들의 토토 핫은 항상 단지라는 것을 제외하고 쿼리 토토 핫식 및 출력 열 이름 또는 숫자가 될 수 없습니다.Window_namea에 대한 참조입니다 쿼리에 정의 된 지명 된 창 사양창절. 또는 전체Window_definition내부에 제공 될 수 있습니다 이름을 정의하는 것과 동일한 구문을 사용하는 괄호 의 창창절; 참조스포츠 토토 : 문서 : 8.4 : select참조 페이지 자세한 내용. 그것을 지적 할 가치가 있습니다Over Wname정확히 같지 않습니다Over (wname); 후자는 암시합니다 창 정의를 복사하고 수정하면됩니다 참조 된 창 사양에 a가 포함 된 경우 거부됩니다 프레임 조항.
theframe_clause지정 를 구성하는 행 세트창 액자, 프레임에 작용하는 창 함수의 경우 전체 파티션 대신. 기본 프레임 옵션은입니다.사전에 생존되지 않은 범위동일무한대 사이의 범위 선행 및 현재 행; 그것은 행을 선택합니다 현재 행의 마지막 동료에서주문 에 의해주문 (없으면 모든 행을 의미합니다주문 by). 옵션전신과 무한대의 무한하지 않은 범위 수행원및무한대 사이의 행 앞서 및 무한한 다음동등합니다. 그들은 항상 파티션의 모든 행을 선택합니다. 마지막으로전면이없는 행또는 그 동등한 동등한무한대 사이의 행 선행 및 현재 행현재 행 (중복에 관계없이). 이 옵션을 조심하십시오 인 경우 구현 의존적 결과를 생성 할 수 있습니다.주문 by주문은 행을 주문하지 않습니다 독창적 인.
내장 창 함수는에 설명되어 있습니다.표 9-44. 다른 창 함수는 사용자가 추가 할 수 있습니다. 또한, 내장 또는 사용자 정의 집계 기능은 창 함수.
구문 사용*매개 변수가없는 집계 함수를 창 함수로 호출 예를 들어count (*) Over (x에 의한 파티션 y) 주문. *는 관례 적으로 그렇지 않습니다 응집되지 않은 창 함수에 사용됩니다. 집계 창 함수는 정상 집계 함수와 달리 허용하지 않습니다별도의기능 인수 목록.
창 함수 호출은에서만 허용됩니다select목록 및주문 에 의해쿼리 조항.
창 함수에 대한 자세한 내용은 찾을 수 있습니다.480060000048006000006000스포츠 토토 핫48006000006000004800500004800600000600000480048005000000006및섹션 7.2.4.
유형 캐스트는 하나의 데이터 유형에서 변환을 지정합니다. 또 다른.postgresql수락 유형 캐스트에 대한 두 개의 동등한 구문 :
cast (토토 핫as타입)토토 핫::타입
캐스트구문은 SQL을 준수합니다. 의 구문::역사적PostgreSQL사용법.
캐스트가 알려진 값의 값 토토 핫에 적용되는 경우 유형, 런타임 유형 변환을 나타냅니다. 캐스트는 할 것이다 적절한 유형 변환 작업이있는 경우에만 성공합니다. 한정된. 이것은 사용과 미묘하게 다릅니다. 상수가있는 캐스트,섹션 4.1.2.7. 캐스트가 불완전한 문자 문자 그대로 적용됩니다 문자 그럴에 유형의 초기 할당을 나타냅니다. 일정한 값, 따라서 모든 유형에 대해 성공할 것입니다 ( 문자열 리터럴의 내용은 허용 가능한 입력 구문입니다. 데이터 유형).
명시 적 유형 캐스트는 일반적으로 없으면 생략 할 수 있습니다. 값 토토 핫식이 생성 해야하는 유형에 대한 모호성 (예를 들어, 테이블 열에 할당 될 때); 그만큼 시스템은 이러한 경우에 주조 된 유형을 자동으로 적용합니다. 그러나 자동 캐스팅은 캐스트에 대해서만 수행됩니다. 두드러진"암시 적으로 적용해도"in 시스템이 카탈로그합니다. 다른 캐스트는 명시 적으로 호출되어야합니다 캐스팅 구문. 이 제한은 방지하기위한 것입니다 조용히 적용되는 놀라운 전환.
함수와 같은 구문 :
typename(토토 핫)
그러나 이것은 이름도있는 유형에 대해서만 작동합니다. 함수 이름으로 유효합니다. 예를 들어,이중 정밀도이런 식으로 사용할 수는 없지만 동등한float8can. 또한, 이름간격, Time및타임 스탬프can 이 패션에서만 두 번 인용되는 경우에만 사용됩니다. 구문 갈등. 따라서 함수와 같은 사용 캐스트 구문은 불일치로 이어질 것입니다 피해.
참고 :함수와 같은 구문은 실제로 a입니다 기능 호출. 두 표준 캐스트 구문 중 하나 일 때 런타임 변환을 수행하는 데 사용되며 내부적으로 등록 된 기능을 호출하여 변환을 수행하십시오. 에 의해 컨벤션에서, 이러한 전환 기능은 동일한 이름을 가지고 있습니다 출력 유형으로"기능형 구문"기본 변환 함수의 직접적인 호출. 분명히 이것은 휴대용이 아닙니다 응용 프로그램은 의존해야합니다. 자세한 내용은 참조PostgreSQL : 문서.
스칼라 하위 퀴어는 평범합니다select정확히 반환되는 괄호 안의 쿼리 열 하나의 열이 하나입니다. (보다와이즈 토토 : 문서 : 8.4 : 쿼리쿼리 작성에 대한 정보.)select쿼리가 실행되고 단일이 반환됩니다 값은 주변 값 토토 핫식에 사용됩니다. 그것은 오류는 둘 이상의 행 이상을 반환하는 쿼리를 사용하는 오류입니다. 스칼라 하위 쿼리로서 하나의 열보다. (그러나 만약 특별한 실행, 하위 쿼리는 행이없고, 오류; 스칼라 결과는 널로 사용됩니다.) 하위 쿼리는 주변 쿼리의 변수를 참조하여 작동합니다. 하위 쿼리의 하나의 평가 중 상수로. 보다 또한PostgreSQL : 문서 : 8.4 : 하위 토토 베이 표현식하위 쿼리와 관련된 기타 토토 핫.
예를 들어, 다음은 가장 큰 도시 인구를 찾습니다 각 주에서 :
이름을 선택하십시오. 주에서;
배열 생성자는 배열을 작성하는 토토 핫식입니다. 회원 요소에 대한 값을 사용한 값. 간단한 배열 생성자는 핵심 단어로 구성됩니다배열, 왼쪽 정사각형 브래킷[, 토토 핫 목록 (쉼표로 구분) 배열 요소 값과 마지막으로 오른쪽 정사각형 까치발]. 예를 들어:
배열 선택 [1,2,3+4]; 정렬 ------- 1,2,7
기본적으로 배열 요소 유형은 공통 유형의 멤버 토토 핫식, for와 동일한 규칙을 사용하여 결정Union또는CASE구성 (참조PostgreSQL :). 명시 적으로 캐스팅하여 이것을 무시할 수 있습니다 원하는 유형에 대한 배열 생성자 (예 :
배열 선택 [1,2,22.7] :: 정수 []; 정렬 --------- 1,2,23
이것은 각 토토 핫식을 배열 요소 유형 개별적으로. 캐스팅에 대한 자세한 내용은 참조섹션 4.2.9.
다차원 배열 값은 중첩 어레이로 구축 할 수 있습니다 생성자. 내부 생성자에서 핵심 단어배열생략 할 수 있습니다. 예를 들어, 이들은 동일한 결과를 생성합니다.
배열 선택 [배열 [1,2], 배열 [3,4]]; 정렬 ----------------- 1,2, 3,4
다차원 배열은 직사각형이어야하므로 내부이어야합니다 같은 레벨의 생성자는 서브 배달을 생성해야합니다 동일한 치수. 외부에 적용되는 모든 캐스트배열생성자는 자동으로 전파됩니다 모든 내부 생성자.
다차원 배열 생성자 요소는 무엇이든 될 수 있습니다 하위 단순한 것뿐만 아니라 적절한 종류의 배열을 산출합니다.배열구성. 예를 들어:
생성 테이블 arr (f1 int [], f2 int []); ARR 값에 삽입 (배열 [1,2], [3,4]], 배열 [[5,6], [7,8]]); 배열 [f1, f2, '9,10, 11,12':: int []]를 선택하십시오. 정렬 ------------------------------------------------ 1,2, 3,4, 5,6, 7,8, 9,10, 11,12
빈 배열을 만들 수는 있지만 불가능하기 때문에 유형이없는 배열이 있으려면 명시 적으로 캐스트해야합니다. 원하는 유형에 비어있는 배열. 예를 들어:
array [] :: integer []; 정렬 -------
결과에서 배열을 구성 할 수도 있습니다. 하위 퀘스트의. 이 형식으로 배열 생성자가 작성됩니다 키워드배열괄호 화 된 (괄호 안) 하위 쿼리. 예를 들어:
배열을 선택합니다 ( 'bytea%'와 같은 Proname과 같은 PG_PROC에서 OID를 선택); ?열? ---------------------------------------------------------------------------------- 2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31
하위 쿼리는 단일 열을 반환해야합니다. 결과 1 차원 배열은 각 행에 요소가 있습니다. 하위 쿼리 결과, 요소 유형이 하위 쿼리의 출력 열.
행 생성자는 행 값을 구축하는 토토 핫식입니다. (복합 값이라고도 함) 회원의 값 사용 전지. 행 생성자는 키워드로 구성됩니다행, 왼쪽 괄호, 0 이상 행 필드 값에 대한 토토 핫식 (쉼표로 구분). 마지막으로 올바른 괄호. 예를 들어:
Select Row (1,2.5, '이것은 테스트입니다');
키워드Row는 선택 사항입니다 목록에는 둘 이상의 토토 핫이 있습니다.
행 생성자는 구문을 포함 할 수 있습니다RowValue.*, 행의 요소 목록으로 확장됩니다. 값, 발생하는 것처럼.*구문은 A의 최상위 레벨에서 사용됩니다select목록. 예를 들어, 표t열이 있습니다f1및F2, 이들은 동일합니다 :
t에서 행 (t.*, 42)을 선택하십시오. t.f1, t.f2, 42)를 선택하여 t;
참고 :전PostgreSQL8.2, The.*구문이 확장되지 않았으므로 쓰기행 (t.*, 42)2 필드를 만들었습니다 첫 번째 필드는 또 다른 행 값이었습니다. 새로운 행동은 일반적으로 더 유용합니다. 오래된 것이 필요하다면 중첩 행 값의 동작, 내부 행 값 쓰기 없이.*, 예를 들어Row (t, 42).
기본적으로 ARow토토 핫식은 익명 레코드 유형입니다. 필요한 경우 이름이 지정된 합성 유형으로 캐스트 될 수 있습니다. 테이블의 행 유형 또는로 만든 복합 유형유형 생성. 명백한 캐스트가 할 수도 있습니다 모호성을 피하기 위해 필요합니다. 예를 들어:
테이블 생성 mytable (f1 int, f2 float, f3 텍스트); 기능 getf1 (mytable) 생성 int를 'select $ 1.f1'언어 SQL로 반환합니다. - 하나의 getf1 () 만 존재하기 때문에 캐스트가 필요하지 않습니다 getf1을 선택하십시오 (행 (1,2.5, '이것은 테스트입니다'); getf1 ------- 1 (1 줄) 유형 myrowtype (f1 int, f2 text, f3 numeric)를 만듭니다. 기능 getf1 (myrowtype)은 int를 'select $ 1.f1'언어 SQL로 반환합니다. - 이제 호출 할 기능을 표시하려면 캐스트가 필요합니다. getf1을 선택하십시오 (행 (1,2.5, '이것은 테스트입니다'); 오류 : 함수 getf1 (레코드)은 고유하지 않습니다 getf1 (행 (1,2.5, '테스트입니다') :: mytable); getf1 ------- 1 (1 줄) getf1을 선택하십시오 (cast (행 (11, '이것은 테스트입니다', 2.5))); getf1 ------- 11 (1 행)
행 생성자를 사용하여 복합 값을 만들 수 있습니다. 복합 유형 테이블 열에 저장되거나 복합 매개 변수를 수락하는 함수. 또한, 그것은입니다 두 행 값을 비교하거나 행을 |is null또는그렇지 않습니다 널, 예 :
SELECT ROW (1,2.5, '테스트입니다') = Row (1, 3, '동일하지 않음'); SELECT ROW (표*)는 테이블에서 NULL입니다. -완전히 널 줄 감지
자세한 내용은 참조섹션 9.21. 행 생성자 에서 논의 된대로 하위 쿼리와 관련하여 사용할 수 있습니다.PostgreSQL : 문서 : 8.4 : 하위 토토 베이 표현식.
하위 토토 핫의 평가 순서는 정의되지 않았습니다. ~ 안에 특히, 연산자 또는 함수의 입력은 반드시 왼쪽에서 오른쪽으로 또는 다른 고정에서 평가되었습니다 주문하다.
토토 핫의 결과가있을 수 있다면 그것의 일부만 평가하여 결정한 다음 다른 부분을 평가하여 결정합니다. 하위 토토 핫은 전혀 평가되지 않을 수 있습니다. 예를 들어, if 한 사람은 다음과 같이 썼다 :
true 또는 somefunc (); 선택
thesomefunc ()전혀 부름받지 않습니다. 하나도 마찬가지입니다 썼다 :
section gomeFunc () 또는 true;
이것은 왼쪽에서 오른쪽과 동일하지 않다는 점에 유의하십시오"단락"44743_44815
결과적으로 측면과 기능을 사용하는 것은 현명하지 않습니다. 복잡한 토토 핫의 일부로서의 효과. 특히 그렇습니다 부작용 또는 평가 순서에 의존하는 데 위험합니다여기서and조항은 그 조항이기 때문에 실행 개발의 일부로 광범위하게 재 처리되었습니다 계획. 부울 토토 핫 (및/또는/not조합) 그 조항에서 부울 법에 의해 허용되는 모든 방식으로 재구성 대수학.
평가 순서를 강제하는 것이 필수적이면 ACASE구성 (참조섹션 9.16)를 사용할 수 있습니다. 을 위한 예를 들어, 이것은 피하려고 시도하는 신뢰할 수없는 방법입니다. a에서 분할여기서절 :
선택 ... 여기서 x 0 및 y/x 1.5;
하지만 안전합니다 :
선택 ... x 0 이후의 경우 y/x 1.5 else false end;
aCASE이것에 사용 된 구성 패션은 최적화 시도를 물리 칠 것이므로 필요할 때 완료되었습니다. (이 특별한 예에서는 그렇습니다 글을 쓰면 문제를 회피하는 것이 좋습니다y 1.5*x대신.)
이전 | 홈 | PostgreSQL : 문서 : 8.4 : 스포츠 토토 베트맨 정의 |
어휘 구조 | up | 데이터 정의 |