값 토토 꽁 머니은 다양한 상황에서 사용됩니다.select명령, 새 열 값으로삽입또는업데이트또는 a의 검색 조건에서스칼라, 그것을 구별하기 위해스칼라(또는 간단히토토 꽁 머니). 토토 꽁 머니식 구문이 허용합니다
값 토토 꽁 머니식은 다음 중 하나입니다.
상수 또는 문자 적 가치
열 참조
a의 본문에서 위치 매개 변수 참조
구독 토토 꽁 머니식
필드 선택 토토 꽁 머니식
운영자 호출
함수 호출
집계 토토 꽁 머니
창 함수 호출
타입 캐스트
A Collation Expression
스칼라 하위 쿼리
배열 생성자
행 생성자
괄호 안의 또 다른 값 토토 꽁 머니식 (그룹에 사용됩니다
이 목록 외에도 여러 구성 요소가 있습니다.스포츠 토토 사이트 : 문서 : 9.1 : 기능 및 연산자. 예는is null조항
우리는 이미 상수에 대해 논의했습니다섹션 4.1.2.
열은 양식으로 참조 할 수 있습니다.
상관 관계.ColumnName
상관 관계는 a의 이름입니다From절. 상관 관계 이름과 분리 점은 생략 될 수 있습니다토토 꽁 머니 : 문서 : 9.1 : 쿼리.)
위치 매개 변수 참조는 값을 나타내는 데 사용됩니다.
$번호
예를 들어 함수의 정의를 고려하십시오부서
, as :
함수 부서 작성 (텍스트)은 부서를 반환합니다
여기$1값을 참조하십시오
토토 꽁 머니식이 배열 유형의 값을 산출하면
토토 꽁 머니[첨자]
또는 다중 인접 요소 (an"배열) 쓰기로 추출 할 수 있습니다
토토 꽁 머니[lower_subscript:어퍼 _subscript]
(여기, 괄호[]의미입니다첨자그 자체는 토토 꽁 머니입니다
일반적으로 배열토토 꽁 머니괄호 안에 있어야하지만
mytable.arraycolumn [4]
마지막 예제의 괄호가 필요합니다. 보다섹션 8.14더 많은 정보
토토 꽁 머니식이 복합 유형의 값을 산출하는 경우 (행
토토 꽁 머니.FieldName
일반적으로 행토토 꽁 머니괄호 안에 있어야하지만
mytable.mycolumn
(따라서 자격을 갖춘 열 참조는 실제로 a입니다
(Compositecol) .Somefield
괄호가 여기에 필요합니다Compositecol는 테이블이 아닌 열 이름입니다mytable는 테이블입니다
선택 목록에서 (참조섹션 7.3), 당신은 요청할 수 있습니다.*:
(compositecol).*
연산자에게는 세 가지 가능한 구문이 있습니다
토토 꽁 머니 운영자 토토 꽁 머니(바이너리치기 |
운영자 토토 꽁 머니(단수 접두사 |
토토 꽁 머니 운영자(unery postfix |
연산자 (스키마.OperatorName)
어떤 특정 사업자가 존재하고 단독인지 여부스포츠 토토 사이트 : 문서 : 9.1 : 기능 및 연산자내장 연산자를 설명합니다.
함수 호출의 구문은 함수 이름입니다.
function_name([토토 꽁 머니 [, 토토 꽁 머니 ... ]])
예를 들어, 다음은 제곱근을 계산합니다
SQRT (2)
내장 함수 목록이9 장. 다른 기능은 추가 할 수 있습니다
인수는 선택적으로 이름이 첨부 될 수 있습니다. 보다토토 사이트 순위 : 문서 : 9.1 : 토토 사이트 순위 호출
참고 :단일 인수를 취하는 함수col (표)andtable.col상호 교환 가능합니다. 이 행동PostgreSQL사용할 수 있기 때문입니다"컴퓨터. 자세한 내용은 참조섹션.
an집계 토토 꽁 머니
Aggregate_name (토토 꽁 머니[, ...] [Order_By_Clause])Aggregate_name(All토토 꽁 머니[, ...] [Order_By_Clause])Aggregate_name(고유 한토토 꽁 머니[, ...] [Order_By_Clause])Aggregate_name ( * )
여기서Aggregate_nameis토토 꽁 머니어떤 값도 있습니다Order_By_Clause선택 사항주문 by아래 설명대로 조항.
첫 번째 골재 토토 꽁 머니 형태는 집계를 호출합니다all기본값입니다. 그만큼count (*)
집계 기능.
대부분의 집계 함수는 널 입력을 무시하여 행
예를 들어count (*)count (f1)입력 행의 수를 산출합니다.f1count
널을 무시합니다. 그리고count (별개의 f1)별개의 수를 산출합니다f1.
일반적으로 입력 행은 집계 함수에 공급됩니다.Min
생산array_agg
andString_agg
) 의존하는 결과를 생성합니다Order_By_Clause원하는 순서를 지정하는 데 사용할 수 있습니다. 그만큼Order_By_Clause와 동일한 구문이 있습니다주문 by조항, AS섹션 7.5,
테이블에서 Array_Agg (A 주문)를 선택하십시오;
다중 연계 집계 함수를 다룰 때,주문 by절은 간다
string_agg (a, ','order by a)를 선택하여 표에서
그렇지 않습니다 :
테이블에서 string_agg (a, ',')를 선택하십시오. -- 잘못된
후자는 구문 적으로 유효하지만 전화를 나타냅니다.주문 by키 (두 번째는 오히려 열쇠입니다
if별도의에 지정되어 있습니다Order_By_Clause,주문 by토토 꽁 머니이 필요합니다별도의목록.
참고 :두 가지를 지정하는 능력별도의and주문집계 함수는 A입니다.PostgreSQL확장.
사전 정의 된 집계 함수는에 설명되어 있습니다.섹션 9.18. 다른 집계
집계 토토 꽁 머니식은 결과 목록에만 나타날 수 있습니다.a 조항select명령. 다른 사람에게는 금지되어 있습니다여기서
집계 토토 꽁 머니식이 하위 쿼리에 나타날 때 (참조섹션andPostgreSQL : 문서 : 9.1 : 윈 토토 퀘리 표현식), 집계는 일반적으로 행을 통해 평가됩니다.조항이 적용됩니다
A 창 함수 호출파티션 by목록) 창 함수 호출.
function_name([토토 꽁 머니 [, 토토 꽁 머니 ... ]]) 오버Window_name function_name([토토 꽁 머니 [, 토토 꽁 머니 ... ]]) over (Window_definition ) function_name( *) OverWindow_name function_name( *) Over (Window_definition )
여기서Window_definition
[ 기존_window_name]토토 꽁 머니[, ...]]토토 꽁 머니[ASC | desc |운영자] [nulls 첫 번째 | 마지막 ] [, ...] ]frame_clause ]
및 선택 사항frame_clause|
범위 | 줄frame_start범위 | 줄 사이의frame_startandframe_end
여기서frame_startandframe_end|
미리 알려지지 않은value선행value다음
여기,토토 꽁 머니파티션 byand주문 by목록은 본질적으로 있습니다그룹 byand주문 by전체의 조항Window_name에 대한 참조입니다창절. 또는 전체Window_definition내부에 제공 될 수 있습니다창절; 참조PostgreSQL : 문서 : 9.1 : 토토참조 페이지오버정확히 같지 않습니다Over (wname); 후자는 복사를 의미합니다
theframe_clause지정창, 프레임에 작용하는 창 함수의 경우frame_end생략 된 기본값현재 행. 제한은frame_start무한한 추종, frame_end미리 알려지지 않은및frame_end선택은 이전에 나타날 수 없습니다frame_start선택 - 예를 들어현재 행과 사이의 범위value선행허용되지 않습니다. 그만큼범위를 결합하지 않습니다,범위; 그것은 그것을 설정한다주문주문 (없으면 모든 행을 의미합니다주문 by). 일반적으로미리 알려지지 않은는 프레임이 시작된다는 것을 의미합니다무한한 추종는 프레임이 끝나는 것을 의미합니다범위또는행모드). 안에행모드,현재프레임이 전류로 시작되거나 종료됨을 의미합니다.범위모드를 의미합니다주문 by주문. 그만큼value 선행andvalue 다음케이스는 현재 허용됩니다행모드. 그들은 프레임이 시작된다는 것을 나타냅니다value정수 여야합니다
내장 창 함수는에 설명되어 있습니다.표 9-45.
구문 사용*count (*) Over (x에 의한 파티션. *관례 적으로는 그렇지 않습니다별도의또는주문함수 인수 목록 내에서 사용하려면
창 함수 호출은에서만 허용됩니다select목록 및주문쿼리 조항.
유형 캐스트는 하나의 데이터 유형에서 변환을 지정합니다.PostgreSQL수락
cast (토토 꽁 머니as타입 ) 토토 꽁 머니::타입
the캐스트구문은 SQL을 준수합니다.::역사적PostgreSQL사용법.
캐스트가 알려진 값 토토 꽁 머니에 적용되는 경우섹션. 캐스트가 불완전한 문자 문자 그대로 적용됩니다
명시 적 유형 캐스트는 일반적으로 없으면 생략 할 수 있습니다."암시 적으로 적용해도"in
typename ( 토토 꽁 머니 )
그러나 이것은 이름도있는 유형에 대해서만 작동합니다.이중 정밀이런 식으로 사용할 수는 없지만float8can. 또한,간격, Time및타임 스탬프can
참고 :함수와 같은 구문은 실제로 a입니다"기능형 구문"캐스트 생성.
theCollate절은
exprCollateCollation
여기서CollationisCollate조항은 연산자보다 더 단단한 바인딩;
Collation이 명시 적으로 지정되지 않은 경우 데이터베이스 시스템
Collate조항은 정렬 순서를 무시하고 있습니다주문 by조항, 예 :
TBL에서 a, b, c를 선택하십시오 ... a Collate "c"; 주문
및 기능 또는 운영자 통화의 통합 재정
선택 *에서 tbl에서 a> 'foo'가 "c"를 collate;
후자의 경우.Collate절은 입력 인수에 첨부됩니다Collate절은 첨부되어 있기 때문입니다Collate절은Collate클로스가 하나 이상입니다섹션 22.2.) 따라서 이것은 동일합니다
선택 *에서 tbl에서 "c"> 'foo ";
그러나 이것은 오류입니다 :
선택 *에서 tbl에서 (a> 'foo') "c";를 충족시킵니다.
결과에 콜레이션을 적용하려고합니다.연산자입니다부울.
스칼라 하위 쿼리는 평범합니다select정확히 반환되는 괄호 안의 쿼리토토 꽁 머니 : 문서 : 9.1 : 쿼리쿼리 작성에 대한 정보.)select쿼리가 실행되고 단일이 반환됩니다PostgreSQL : 문서 : 9.1 : 윈 토토 퀘리 표현식
예를 들어, 다음은 가장 큰 도시 인구를 찾습니다
이름을 선택하십시오.
배열 생성자는 배열을 작성하는 토토 꽁 머니식입니다.배열, 왼쪽 정사각형 브래킷[, 토토 꽁 머니 목록 (쉼표로 구분)]. 예를 들어:
배열 선택 [1,2,3+4];
기본적으로 배열 요소 유형은 공통 유형의Union또는CASE구성 (참조섹션). 명시 적으로 캐스팅하여 이것을 무시할 수 있습니다
배열 선택 [1,2,22.7] :: 정수 [];
이것은 각 토토 꽁 머니식을섹션.
다차원 배열 값은 둥지 배열로 구축 할 수 있습니다배열생략 할 수 있습니다. 예를 들어,
배열 선택 [배열 [1,2], 배열 [3,4]];
다차원 배열은 직사각형, 내부 여야하므로배열생성자는 자동으로 전파됩니다
35421_35538배열구성. 예를 들어:
테이블 생성 테이블 arr (f1 int [], f2 int []);
빈 배열을 만들 수는 있지만 불가능하기 때문에
배열 선택 [] :: integer [];
결과에서 배열을 구성 할 수도 있습니다.배열
배열을 선택하십시오 (PG_PROC에서 'Bytea%'와 같은 PG_PROC에서 OID를 선택);
하위 쿼리는 단일 열을 반환해야합니다. 결과
|배열항상 하나부터 시작합니다. 자세한 내용섹션.
행 생성자는 행 값을 구축하는 토토 꽁 머니식입니다.Row, 왼쪽 괄호, 0 이상
선택 행 (1,2.5, '테스트입니다');
키워드Row옵션은 다음과 같습니다
행 생성자는 구문을 포함 할 수 있습니다RowValue.*,.*구문은 A의 최상위 레벨에서 사용됩니다select목록. 예를 들어, 표t열이 있습니다f1andf2, 이들은 동일합니다 :
t에서 행 (t.*, 42)을 선택하십시오.
참고 :전PostgreSQL8.2,.*구문이 확장되지 않았으므로 쓰기Row (t.*, 42)2 필드를 만들었습니다.*, 예를 들어행 (t, 42).
기본적으로 ARow토토 꽁 머니식은 익명 레코드 유형입니다.유형 생성 AS. 명백한 캐스트가 할 수도 있습니다
테이블 생성 mytable (f1 int, f2 float, f3 텍스트);
행 생성자를 사용하여 복합 값을 만들 수 있습니다.is null또는그렇지 않습니다, 예 :
SELECT ROW (1,2.5, '테스트입니다') = Row (1, 3, '동일하지 않음');
자세한 내용은 참조섹션 9.21. 행 생성자PostgreSQL : 문서 : 9.1 : 윈 토토 퀘리 표현식.
하위 토토 꽁 머니의 평가 순서는 정의되지 않습니다. ~ 안에
토토 꽁 머니의 결과가있을 수 있다면
true 또는 somefunc (); 선택
thesomefunc ()
somectefunc () 또는 true;를 선택하십시오.
이것은 왼쪽에서 오른쪽과 동일하지 않다는 점에 유의하십시오"단락"34863_34932
결과적으로 측면과 기능을 사용하는 것은 현명하지 않습니다.여기서and조항은 그 조항이기 때문에and/또는/not조합) 그 조항에서
평가 순서를 강제하는 것이 필수적이면 ACASE구성 (참조섹션 9.16)를 사용할 수 있습니다. 을 위한여기서절 :
선택 ... 여기서 x> 0 및 y/x> 1.5;
하지만 안전합니다 :
선택 ... x> 0 이후의 경우 y/x> 1.5 else false end;
A CASE이것에 사용 된 구성y대신.)
CASE는 그런 치료법이 아닙니다섹션 35.6, 함수 및불변성할 수 있습니다
x> 0이면 x> 0을 선택하여 x 1/0 끝 탭에서 1/0을 선택하십시오.
x> 0else암은 절대되지 않을 것입니다
그 특정 예는 어리석은 것처럼 보일 수 있지만 관련이 있습니다PL/PGSQL함수, 예를 들어if-the-else진술CASE토토 꽁 머니.
같은 종류의 또 다른 한계는 A입니다.CASE집계의 평가를 방지 할 수 없습니다selectList 또는조항이 고려됩니다. 예를 들어, 다음 쿼리는 할 수 있습니다
Min (직원)> 0 인 경우 사례를 선택하십시오
themin ()
andavg ()
집계는 동시에 계산됩니다직원0과 동일합니다min ()
. 대신, A 사용여기서문제가있는 입력 행을 방지하기위한 절