이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 4.2. 가치 젠 토토버전 또는 위에 나열된 다른 지원 버전 중 하나를 선택하세요.

4.2. 값 스포츠 토토 베트맨

값 스포츠 토토 베트맨식은 다음과 같은 다양한 상황에서 사용됩니다. 의 대상 목록에서선택명령, 새 열 값으로삽입또는업데이트또는 검색 조건에서 명령의 수. 값 스포츠 토토 베트맨식의 결과는 때때로 a라고 불렀다스칼라과 구별하기 위해 테이블 스포츠 토토 베트맨식(테이블)의 결과입니다. 값 따라서 스포츠 토토 베트맨식도 호출됩니다.스칼라 스포츠 토토 베트맨(또는 간단히스포츠 토토 베트맨). 스포츠 토토 베트맨식 구문은 다음을 허용합니다. 산술을 사용하여 기본 부품의 값 계산, 논리, 집합 및 기타 연산.

값 스포츠 토토 베트맨식은 다음 중 하나입니다:

  • 상수 또는 리터럴 값.

  • 열 참조입니다.

  • 위치 매개변수 참조, 본문에 있음 함수 정의 또는 준비된 문.

  • 아래첨자 스포츠 토토 베트맨입니다.

  • 필드 선택 스포츠 토토 베트맨식입니다.

  • 연산자 호출입니다.

  • 함수 호출입니다.

  • 집계 스포츠 토토 베트맨식.

  • 타입 캐스트.

  • 스칼라 하위 쿼리.

  • 배열 생성자.

  • 행 생성자.

  • 괄호 안의 또 다른 값 스포츠 토토 베트맨, 그룹화에 유용함 하위 스포츠 토토 베트맨식 및 재정의 우선순위.

이 목록 외에도 다수의 구성이 있습니다 스포츠 토토 베트맨식으로 분류될 수 있지만 어떤 스포츠 토토 베트맨식도 따르지 않는 일반적인 구문 규칙. 이들은 일반적으로 다음과 같은 의미를 갖습니다. 함수 또는 연산자에 대한 내용은 해당 항목에 설명되어 있습니다. 위치스포츠 토토 : 문서 : 8.1 : 기능 및 스포츠 토토. 예는 다음과 같습니다 그만큼NULL임절.

우리는 이미 상수에 대해 논의했습니다.섹션 4.1.2. 그만큼 다음 섹션에서는 나머지 옵션에 대해 설명합니다.

4.2.1. 열 참고자료

양식에서 열을 참조할 수 있습니다.

상관관계.열 이름

상관관계이름은 테이블(스키마 이름으로 한정될 수 있음) 또는 별칭 a를 통해 정의된 테이블발신절 또는 핵심 단어 중 하나신규또는오래된. (신규그리고오래된재작성 규칙에만 나타날 수 있습니다. 다른 상관 이름은 모든 SQL에서 사용될 수 있습니다. 명령문.) 상관 관계 이름과 구분 점은 다음과 같을 수 있습니다. 열 이름이 모든 테이블에서 고유한 경우 생략됩니다. 현재 쿼리에서 사용 중입니다. (또한 참조제7장.)

4.2.2. 위치 매개변수

위치 매개변수 참조는 값을 나타내는 데 사용됩니다. 이는 SQL 문에 외부적으로 제공됩니다. 매개변수는 SQL 함수 정의 및 준비된 쿼리에 사용됩니다. 일부 클라이언트 라이브러리는 데이터 값을 별도로 지정하는 것도 지원합니다. 매개변수가 사용되는 경우 SQL 명령 문자열에서 라인 밖의 데이터 값을 참조합니다. 의 형태 매개변수 참조는 다음과 같습니다.

$번호

예를 들어, 함수의 정의를 생각해 보세요.부서, 다음과 같이

CREATE FUNCTION 부서(텍스트) RETURNS 부서
    AS $$ SELECT * FROM dept WHERE 이름 = $1 $$
    언어 SQL;

여기$1다음 값을 참조합니다. 함수가 다음과 같을 때마다 첫 번째 함수 인수 호출되었습니다.

4.2.3. 아래첨자

식이 배열 유형의 값을 산출하는 경우, 배열 값의 특정 요소는 다음을 통해 추출할 수 있습니다. 글쓰기

스포츠 토토 베트맨[아래첨자]

또는 여러 인접 요소(an"배열 일부분")를 작성하여 추출할 수 있습니다.

스포츠 토토 베트맨[lower_subscript:upper_subscript]

(여기서는 괄호[ ]의미입니다 문자 그대로 나타납니다.) 각아래첨자그 자체가 스포츠 토토 베트맨식입니다. 정수 값을 산출해야 합니다.

일반적으로 배열스포츠 토토 베트맨괄호로 묶어야 하지만 괄호는 스포츠 토토 베트맨식이 될 때 생략될 수 있습니다. 아래 첨자는 열 참조 또는 위치 매개변수일 뿐입니다. 또한 원본이 있을 때 여러 첨자를 연결할 수 있습니다. 배열은 다차원입니다. 예를 들어,

mytable.arraycolumn[4]
mytable.two_d_column[17][34]
$1[10:42]
(배열함수(a,b))[42]

마지막 예의 괄호는 필수입니다. 보다PostgreSQL : 문서 : 8.1 : 토토 사이트 추천자세한 내용은 배열.

4.2.4. 필드 선택

식이 복합 유형의 값을 생성하는 경우(행 유형), 다음을 통해 행의 특정 필드를 추출할 수 있습니다. 글쓰기

스포츠 토토 베트맨.필드명

일반적으로 행스포츠 토토 베트맨괄호로 묶어야 하지만 스포츠 토토 베트맨식을 선택할 때 괄호는 생략될 수 있습니다. from은 단지 테이블 참조 또는 위치 매개변수입니다. 을 위한 예,

mytable.mycolumn
$1.일부열
(행함수(a,b)).col3

(따라서 한정된 열 참조는 실제로는 필드 선택 구문의 특별한 경우입니다.)

4.2.5. 운영자 호출

연산자에는 세 가지 가능한 구문이 있습니다. 기도:

스포츠 토토 베트맨 연산자 스포츠 토토 베트맨(바이너리 중위어 연산자)
연산자 스포츠 토토 베트맨(단항 접두사 연산자)
스포츠 토토 베트맨 연산자(단항 접미사 연산자)
여기서연산자토큰은 다음의 구문 규칙을 따릅니다.섹션 4.1.3또는 핵심 단어 중 하나그리고, 또는아님또는 형식의 자격을 갖춘 운영자 이름
연산자(스키마.운영자 이름)

어떤 특정 연산자가 존재하며 단항 연산자인지 여부 또는 바이너리는 다음에 의해 정의된 연산자에 따라 달라집니다. 시스템 또는 사용자.스포츠 토토 : 문서 : 8.1 : 기능 및 스포츠 토토내장 연산자를 설명합니다.

4.2.6. 함수 호출

함수 호출의 구문은 함수의 이름입니다 (스키마 이름으로 한정될 수 있음), 그 뒤에 괄호로 묶인 인수 목록:

함수 ([스포츠 토토 베트맨 [, 스포츠 토토 베트맨 ... ]] )

예를 들어 다음은 다음의 제곱근을 계산합니다. 2:

sqrt(2)

내장 함수 목록은 다음과 같습니다.제9장. 다른 기능은 다음에 의해 추가될 수 있습니다. 사용자.

4.2.7. 골재 스포츠 토토 베트맨식

집계 스포츠 토토 베트맨식를 나타냄 행 전체에 집계 함수 적용 쿼리로 선택되었습니다. 집계 함수는 여러 항목을 줄입니다. 합계 또는 평균과 같은 단일 출력 값에 대한 입력 입력. 집계 스포츠 토토 베트맨식의 구문은 다음 중 하나입니다. 수행원:

aggregate_name (스포츠 토토 베트맨)
aggregate_name(전체스포츠 토토 베트맨)
aggregate_name(독특스포츠 토토 베트맨)
aggregate_name ( * )

어디에서aggregate_name은 이전에 정의된 집계(스키마로 한정될 수 있음) 이름) 및스포츠 토토 베트맨임의의 것 자체적으로 집계를 포함하지 않는 값 스포츠 토토 베트맨식 스포츠 토토 베트맨.

집계 스포츠 토토 베트맨식의 첫 번째 형태는 집계를 호출합니다. 주어진 스포츠 토토 베트맨식이 결과를 산출하는 모든 입력 행에 걸쳐 널이 아닌 값. (실제로는 집계함수에 달려있습니다. null 값을 무시할지 여부 — 그러나 모든 표준은 그렇습니다.) 두 번째 형식은 첫 번째 형식과 동일합니다.전체기본값입니다. 세 번째 형태 null이 아닌 모든 고유한 값에 대한 집계를 호출합니다. 입력 행에 스포츠 토토 베트맨식이 있습니다. 마지막 양식은 null 또는 null 여부에 관계없이 각 입력 행에 대해 한 번씩 집계됩니다. 널이 아닌 값; 특별한 입력 값이 지정되지 않았기 때문에 일반적으로 다음 경우에만 유용합니다.수()집계 함수.

예를 들어,개수(*)수율 총 입력 행 수;수(f1)입력 행 수를 산출합니다.f1null이 아닙니다.개수(고유 f1)개별 개수를 산출합니다. null이 아닌 값f1.

미리 정의된 집계 함수는 다음에 설명되어 있습니다.섹션 9.15. 기타 집계 기능은 사용자가 추가할 수 있습니다.

집계 스포츠 토토 베트맨식은 결과 목록에만 나타날 수 있습니다. 또는가지고 있는 중a의 절선택명령. 다른 곳에서는 금지되어 있습니다 다음과 같은 절어디에서, 왜냐면 그건 절은 결과가 나오기 전에 논리적으로 평가됩니다. 집계가 형성됩니다.

하위 쿼리에 집계 스포츠 토토 베트맨식이 나타나는 경우(참조섹션 4.2.9그리고PostgreSQL :), 집계는 일반적으로 다음 행에 대해 평가됩니다. 하위 쿼리. 그러나 집계의 경우 예외가 발생합니다. 인수에는 외부 수준 변수만 포함됩니다. 그런 다음 가장 가까운 외부 수준에 속하며 평가됩니다. 해당 쿼리의 행에 대해. 집계 스포츠 토토 베트맨식은 다음과 같습니다. 전체는 나타나는 하위 쿼리에 대한 외부 참조입니다. 그 중 하나의 평가에 대해 상수로 작용합니다. 하위 쿼리. 결과에만 나타나는 것에 대한 제한 목록 또는가지고 있는 중절 적용 대상: 집계가 속한 쿼리 수준과 관련하여.

4.2.8. 유형 캐스트

유형 변환은 하나의 데이터 유형에서 다음 데이터 유형으로의 변환을 지정합니다. 또 다른.포스트그레SQL수락 유형 캐스트에 해당하는 두 가지 구문:

캐스트(스포츠 토토 베트맨AS유형 )
스포츠 토토 베트맨::유형

캐스트구문은 SQL을 따릅니다. 구문은::역사적임PostgreSQL사용.

캐스트가 알려진 값 스포츠 토토 베트맨식에 적용될 때 유형은 런타임 유형 변환을 나타냅니다. 출연진은 적절한 유형 변환 작업이 수행된 경우에만 성공합니다. 한정된. 이는 의 사용과 미묘하게 다르다는 점에 유의하세요. 다음과 같이 상수로 캐스팅합니다.섹션 4.1.2.5. 장식되지 않은 문자열 리터럴에 적용된 캐스트 리터럴에 대한 유형의 초기 할당을 나타냅니다. 상수 값이므로 모든 유형에 대해 성공합니다(만약 문자열 리터럴의 내용은 다음에 대해 허용되는 입력 구문입니다. 데이터 유형).

명시적인 유형 캐스팅은 일반적으로 없는 경우 생략될 수 있습니다. 값 스포츠 토토 베트맨식이 생성해야 하는 유형에 대한 모호성 (예를 들어 테이블 열에 할당된 경우) 그만큼 이러한 경우 시스템은 자동으로 유형 캐스트를 적용합니다. 단, 자동 시전은 다음과 같은 시전에만 수행됩니다. 두드러진"암시적으로 적용해도 괜찮습니다"에 시스템 카탈로그. 다른 캐스트는 명시적으로 호출해야 합니다. 캐스팅 구문. 이 제한은 다음을 방지하기 위한 것입니다. 자동으로 적용되면서 놀라운 전환이 발생했습니다.

다음을 사용하여 유형 캐스트를 지정하는 것도 가능합니다. 함수형 구문:

유형이름 ( 스포츠 토토 베트맨 )

그러나 이것은 이름이 다음과 같은 유형에 대해서만 작동합니다. 함수 이름으로 유효합니다. 예를 들어,배정밀도이 방법은 사용할 수 없지만 동등한float8할 수 있습니다. 또한 이름은간격, 시간타임스탬프할 수 있다 큰따옴표로 묶인 경우에만 이런 방식으로 사용됩니다. 구문 충돌. 따라서 함수와 같은 사용 캐스트 구문으로 인해 불일치가 발생하므로 아마도 새로운 응용 프로그램에서는 피하십시오. (함수와 유사한 구문은 다음과 같습니다. 사실은 단지 함수 호출일 뿐입니다. 두 표준 캐스트 중 하나인 경우 구문은 런타임 변환을 수행하는 데 사용됩니다. 내부적으로 등록된 함수를 호출하여 변환. 관례적으로 이러한 변환 함수는 출력 유형과 이름이 같으므로"함수와 유사한 구문"그것은 단지 기본 변환 함수를 직접 호출합니다. 분명히 이것은 휴대용 응용 프로그램이 아닙니다. 의존해야 합니다.)

4.2.9. 스칼라 하위 쿼리

스칼라 하위 쿼리는 일반 쿼리입니다.선택정확하게 반환되는 괄호 안의 쿼리 하나의 행과 하나의 열. (보다스포츠 토토 : 문서 : 8.1 : 쿼리쿼리 작성에 대한 정보.) The선택쿼리가 실행되고 단일이 반환됩니다. value는 주변 값 스포츠 토토 베트맨식에 사용됩니다. 그것은 둘 이상의 행을 반환하는 쿼리를 사용하는 동안 오류가 발생했습니다. 스칼라 하위 쿼리로 하나 이상의 열. (그러나 만약, 그 동안 특정 실행 시 하위 쿼리는 행을 반환하지 않습니다. 오류; 스칼라 결과는 null로 간주됩니다.) 하위 쿼리는 주변 쿼리의 변수를 참조하여 작동합니다. 하위 쿼리를 평가하는 동안 상수로 사용됩니다. 보다 또한PostgreSQL : 문서 : 8.1 : 하위 사설 토토 사이트 표현식용 하위 쿼리와 관련된 다른 스포츠 토토 베트맨식입니다.

예를 들어, 다음은 가장 큰 도시 인구를 찾습니다. 각 주에서:

이름 선택, (도시에서 최대(팝) 선택, WHERE 도시.주 = 주.이름)
    상태에서;

4.2.10. 정렬 생성자

배열 생성자는 배열을 만드는 스포츠 토토 베트맨식입니다 해당 구성원 요소의 값에서 값을 얻습니다. 간단한 배열 생성자는 키워드로 구성됩니다.어레이, 왼쪽 대괄호[, 하나 이상의 스포츠 토토 베트맨식(쉼표로 구분) 배열 요소 값의 경우 마지막으로 오른쪽 사각형 까치발]. 예를 들어,

배열 선택[1,2,3+4];
  정렬
---------
 1,2,7

배열 요소 유형은 구성원의 공통 유형입니다. 스포츠 토토 베트맨식은 와 동일한 규칙을 사용하여 결정됩니다.유니온또는사례구조물(참조범퍼카 토토 : 문서).

다차원 배열 값은 배열을 중첩하여 구축할 수 있습니다. 생성자. 내부 생성자에서 키워드는어레이생략될 수 있습니다. 예를 들어, 이는 동일한 결과를 생성합니다.

배열 선택[ARRAY[1,2], ARRAY[3,4]];
     정렬
---------------
 1,2,3,4

다차원 배열은 직사각형이어야 하므로 내부 동일한 수준의 생성자는 다음의 하위 배열을 생성해야 합니다. 동일한 치수.

다차원 배열 생성자 요소는 무엇이든 될 수 있습니다. sub-뿐만 아니라 적절한 종류의 배열을 생성합니다.어레이구조물. 예를 들어:

테이블 생성 arr(f1 int[], f2 int[]);

INSERT INTO arr VALUES (ARRAY[[1,2],[3,4]], ARRAY[[5,6],[7,8]]);

배열 선택[f1, f2, '9,10,11,12'::int[]] FROM arr;
                     정렬
------------------------------------------------
 1,2,3,4,5,6,7,8,9,10,11,12

결과로부터 배열을 구성하는 것도 가능합니다 하위 쿼리의 이 형식에서는 배열 생성자가 작성됩니다. 키워드로어레이뒤에 괄호로 묶인(괄호로 묶지 않은) 하위 쿼리입니다. 예를 들어:

SELECT ARRAY(SELECT oid FROM pg_proc WHERE proname LIKE 'bytea%');
                          ?열?
------------------------------------------------
 2011,1954,1948,1952,1951,1244,1950,2005,1949,1953,2006,31

하위 쿼리는 단일 열을 반환해야 합니다. 결과 1차원 배열은 각 행에 대한 요소를 갖습니다. 하위 쿼리 결과, 요소 유형이 요소 유형과 일치함 하위 쿼리의 출력 열입니다.

다음으로 구축된 배열 값의 첨자어레이항상 1로 시작합니다. 더 알아보기 배열에 대한 자세한 내용은 참조PostgreSQL :.

4.2.11. 열 생성자

행 생성자는 행 값을 구성하는 스포츠 토토 베트맨식입니다. 해당 멤버의 값에서 (복합 값이라고도 함) 전지. 행 생성자는 키워드로 구성됩니다.ROW, 왼쪽 괄호, 0개 이상 행 필드 값에 대한 스포츠 토토 베트맨식(쉼표로 구분) 마지막으로 오른쪽 괄호입니다. 예를 들어,

SELECT ROW(1,2.5,'테스트입니다');

핵심 단어ROW다음의 경우 선택사항입니다. 목록에 스포츠 토토 베트맨식이 두 개 이상 있습니다.

기본적으로 a에 의해 생성된 값은ROW스포츠 토토 베트맨식은 익명 레코드 유형입니다. 필요한 경우 명명된 복합 유형으로 캐스팅할 수 있습니다. 테이블의 행 유형 또는로 생성된 복합 유형다음으로 유형 생성. 명시적 캐스트는 다음과 같습니다. 모호함을 피하기 위해 필요합니다. 예를 들어:

CREATE TABLE mytable(f1 int, f2 float, f3 text);

CREATE FUNCTION getf1(mytable)은 int AS 'SELECT $1.f1' LANGUAGE SQL을 반환합니다.

-- getf1()이 하나만 존재하므로 캐스트가 필요하지 않습니다.
SELECT getf1(ROW(1,2.5,'이것은 테스트입니다'));
 getf1
-------
     1
(1줄)

CREATE TYPE myrowtype AS (f1 int, f2 텍스트, f3 숫자);

CREATE FUNCTION getf1(myrowtype) RETURNS int AS 'SELECT $1.f1' LANGUAGE SQL;

-- 이제 호출할 함수를 나타내는 캐스트가 필요합니다.
SELECT getf1(ROW(1,2.5,'이것은 테스트입니다'));
오류: getf1(레코드) 함수가 고유하지 않습니다.

SELECT getf1(ROW(1,2.5,'이것은 테스트입니다.')::mytable);
 getf1
-------
     1
(1줄)

SELECT getf1(CAST(ROW(11,'이것은 테스트입니다.',2.5) AS myrowtype));
 getf1
-------
    11
(1행)

행 생성자는 다음과 같은 복합 값을 만드는 데 사용될 수 있습니다. 복합형 테이블 컬럼에 저장되거나 복합 매개변수를 받아들이는 함수. 또한, 그것은 두 행 값을 비교하거나 다음을 사용하여 행을 테스트할 수 있습니다.NULL입니다또는아님 NULL, 예를 들어

SELECT ROW(1,2.5,'테스트입니다') = ROW(1, 3, '같지 않음');

SELECT ROW(a, b, c)는 테이블에서 NULL이 아닙니다.

자세한 내용은 참조섹션 9.17. 행 생성자 에서 설명한 대로 하위 쿼리와 관련하여 사용할 수도 있습니다.PostgreSQL : 문서 : 8.1 : 하위 사설 토토 사이트 표현식.

4.2.12. 발현 평가 규칙

하위 스포츠 토토 베트맨식의 평가 순서는 정의되지 않았습니다. ~ 안에 특히, 연산자나 함수의 입력은 반드시 왼쪽에서 오른쪽으로 또는 기타 고정된 방향으로 평가됩니다. 주문하다.

또한, 스포츠 토토 베트맨식의 결과가 다음과 같을 수 있다면 그 중 일부만 평가하여 결정한 다음 다른 부분을 평가하여 결정합니다. 하위 스포츠 토토 베트맨식은 전혀 평가되지 않을 수 있습니다. 예를 들어, 만약 하나는 썼다

참 또는 somefunc()을 선택하세요;

그런 다음somefunc()아마도) 전혀 호출되지 않습니다. 한 사람이라도 마찬가지일 것이다. 썼다

somefunc() 또는 true를 선택하세요.

이것은 왼쪽에서 오른쪽으로와 동일하지 않습니다."단락"부울의 일부 프로그래밍 언어에서 발견되는 연산자입니다.

결과적으로 측면과 함께 함수를 사용하는 것은 현명하지 않습니다. 복잡한 스포츠 토토 베트맨의 일부로 효과. 특히 부작용이나 평가 순서에 의존하는 것은 위험합니다.어디에서그리고가지고 있는 중절, 그 절은 다음과 같습니다. 실행 개발의 일부로 광범위하게 재처리됨 계획. 부울 스포츠 토토 베트맨식(그리고/또는/아님35868_35982

평가 순서를 강제하는 것이 필수적인 경우, a사례구조물(참조섹션 9.13)를 사용할 수 있습니다. 을 위한 예를 들어, 이는 회피하려는 신뢰할 수 없는 방법입니다. a에서 0으로 나누기어디에서절:

선택 ... x < 0 AND y/x  1.5;

그러나 이것은 안전합니다:

SELECT ... WHERE CASE WHEN x < 0 THEN y/x  1.5 ELSE false END;

A 사례이것에 사용된 구성 패션은 최적화 시도를 무산시키므로 필요할 때 수행됩니다. (이 특별한 예에서는 의심할 바 없이 글을 써서 문제를 피하는 것이 가장 좋습니다.y 1.5*x대신.)