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

4.2. 값 토토 사이트 추천

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

값 토토 사이트 추천식은 다음 중 하나입니다:

  • 상수 또는 리터럴 값

  • 열 참조

  • 위치 매개변수 참조, 본문 함수 정의 또는 준비된 명령문

  • 첨자 토토 사이트 추천식

  • 필드 선택 토토 사이트 추천식

  • 연산자 호출

  • 함수 호출

  • 집계 토토 사이트 추천식

  • 창 함수 호출

  • A 유형 캐스트

  • 조합 토토 사이트 추천식

  • 스칼라 하위 쿼리

  • 배열 생성자

  • 행 생성자

  • 괄호 안의 또 다른 값 토토 사이트 추천(그룹화에 사용됨) 하위 토토 사이트 추천식 및 우선 순위 재정의)

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

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

4.2.1. 열 참조

열은 다음 형식으로 참조될 수 있습니다:

상관관계.열 이름

상관관계이름은 테이블(스키마 이름으로 한정될 수 있음) 또는 별칭 a를 통해 정의된 테이블발신절. 상관명과 구분점은 생략 가능 사용되는 모든 테이블에서 열 이름이 고유한 경우 현재 쿼리에서. (또한 참조스포츠 토토 : 문서 : 9.2 : 쿼리.)

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 : 문서 : 9.2 : 윈 토토자세한 내용은 배열.

4.2.4. 필드 선택

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

토토 사이트 추천.필드 이름

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

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

(따라서 한정된 열 참조는 실제로는 필드 선택 구문의 특별한 경우입니다.) 중요한 특별한 경우는 테이블 열에서 필드를 추출하는 것입니다. 복합 유형:

(compositecol).somefield
(mytable.compositecol).somefield

여기에는 이를 표시하기 위해 괄호가 필요합니다.복합 콜테이블이 아닌 열 이름입니다. 이름이나 그 사람마이테이블테이블입니다 두 번째 경우에는 스키마 이름이 아닙니다.

당신은 다음과 같이 작성하여 복합 값의 모든 필드를 요청할 수 있습니다..*:

(복합 콜).*

이 표기법은 상황에 따라 다르게 작동합니다. 보다섹션 8.16.5용 세부.

4.2.5. 연산자 호출

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

토토 사이트 추천 연산자 토토 사이트 추천(바이너리 중위어 연산자)
연산자 토토 사이트 추천(단항 접두사 연산자)
토토 사이트 추천 연산자(단항 접미사 연산자)
여기서연산자토큰은 다음 구문 규칙을 따릅니다섹션 4.1.3, 또는 키워드 중 하나그리고, 또는아님또는 다음 형식의 정규화된 연산자 이름입니다.
연산자(스키마.운영자 이름)

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

4.2.6. 함수 호출

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

함수_이름 ([토토 사이트 추천 [, 토토 사이트 추천 ... ]] )

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

sqrt(2)

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

인수에는 선택적으로 이름이 첨부될 수 있습니다. 보다PostgreSQL : 문서 : 9.2 : 스포츠 토토 베트맨 스포츠 토토 베트맨용 세부.

참고:단일 인수를 취하는 함수: 복합 유형은 선택적으로 다음을 사용하여 호출할 수 있습니다. 필드 선택 구문과 반대로 필드 선택이 가능합니다. 기능적인 스타일로 작성하세요. 즉, 표기법열(테이블)그리고table.col교환 가능합니다. 이 행동 SQL 표준은 아니지만 다음에서 제공됩니다.포스트그레SQL다음을 사용할 수 있기 때문입니다. 에뮬레이트할 함수"계산됨 전지". 자세한 내용은 참조섹션 8.16.5.

4.2.7. 집계 토토 사이트 추천식

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

aggregate_name (토토 사이트 추천 [ , ... ] [ order_by_clause ] )
aggregate_name(전체토토 사이트 추천 [ , ... ] [ order_by_clause ] )
aggregate_name(DISTINCT토토 사이트 추천 [ , ... ] [ order_by_clause ] )
aggregate_name ( * )

어디에서aggregate_name은 이전에 정의된 집계(스키마로 한정될 수 있음) 이름),토토 사이트 추천모든 값 자체적으로 집계 토토 사이트 추천식을 포함하지 않는 토토 사이트 추천식 또는 창 함수 호출 및order_by_clause선택사항입니다주문 기준아래 설명된 절.

집계 토토 사이트 추천식의 첫 번째 형태는 집계를 호출합니다. 각 입력 행마다 한 번씩. 두 번째 형태는 위와 동일하다. 먼저, 이후로전체기본값입니다. 그만큼 세 번째 형식은 각 고유 값에 대해 한 번씩 집계를 호출합니다. 여러 개의 경우 토토 사이트 추천식(또는 고유한 값 집합) 토토 사이트 추천식)이 입력 행에 있습니다. 마지막 양식은 각 입력 행에 대해 한 번씩 집계합니다. 특별한 입력이 없기 때문에 값이 지정되면 일반적으로 다음 경우에만 유용합니다.개수(*)집계 함수.

대부분의 집계 함수는 null 입력을 무시하므로 null을 산출하는 토토 사이트 추천식 중 하나 이상이 무엇입니까? 폐기되었습니다. 특별한 경우가 아니면 이는 사실이라고 가정할 수 있습니다. 모든 내장 집계에 대해 지정됩니다.

예를 들어,개수(*)수율 총 입력 행 수;수(f1)다음이 포함된 입력 행 수를 산출합니다.f1이후 null이 아닙니다.개수널을 무시합니다. 그리고개수(고유 f1)개별 개수를 산출합니다. null이 아닌 값f1.

일반적으로 입력 행은 집계 함수에 제공됩니다. 불특정 순서로. 많은 경우 이는 중요하지 않습니다. 예를 들어,생성 입력을 받는 순서에 관계없이 동일한 결과를 얻습니다. 그러나 일부 집계 함수(예:array_agg그리고string_agg)는 다음에 따라 결과를 생성합니다. 입력 행의 순서. 이러한 집합체를 사용할 때, 선택 사항order_by_clause원하는 순서를 지정하는 데 사용할 수 있습니다. 그만큼order_by_clause다음과 동일한 구문을 가집니다. 쿼리 수준의 경우주문 기준절, 다음과 같이 설명됨스포츠 토토 : 문서 : 9.2 : 정렬 행, 그 토토 사이트 추천은 항상 토토 사이트 추천일 뿐이고 출력 열 이름이나 숫자일 수 없습니다. 예를 들어:

SELECT array_agg(a ORDER BY b DESC) FROM 테이블;

다중 인수 집계 함수를 처리할 때, 참고하세요주문 기준절이 간다 모든 집계 인수 후에. 예를 들어 다음과 같이 작성합니다.

SELECT string_agg(a, ',' ORDER BY a) FROM 테이블;

이것이 아닙니다:

SELECT string_agg(a ORDER BY a, ',') FROM 테이블;  -- 잘못된

후자는 구문적으로 유효하지만 호출을 나타냅니다. 2개의 단일 인수 집계 함수주문 기준키(두 번째 키는 오히려 상수이므로 쓸모가 없습니다.)

만약독특다음에 지정됨 에 추가order_by_clause, 그럼 모두주문 기준토토 사이트 추천식은 다음과 같아야 합니다 집계의 일반 인수와 일치합니다. 즉, 당신은 할 수 없습니다 에 포함되지 않은 토토 사이트 추천식을 정렬합니다.독특목록.

참고:둘 다 지정하는 기능독특그리고주문 에 의해집계 함수에서 aPostgreSQL확장.

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

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

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

4.2.8. 창 함수 호출

A 창 함수 호출을 나타냄 일부 부분에 집계형 함수 적용 쿼리에 의해 선택된 행 중 일반 집계와는 다르게 함수 호출은 선택한 그룹화와 관련이 없습니다. 행을 단일 출력 행으로 — 각 행은 개별적으로 유지됩니다. 쿼리 출력. 그러나 창 기능은 스캔할 수 있습니다. 현재 행 그룹의 일부가 될 모든 행 그룹화 사양에 따라 (파티션 기준목록) 창 함수 호출. 창 함수 호출의 구문은 다음 중 하나입니다. 수행원:

함수_이름 ([토토 사이트 추천 [, 토토 사이트 추천 ... ]]) 이상window_name
함수_이름 ([토토 사이트 추천 [, 토토 사이트 추천 ... ]]) 이상 (window_definition )
함수_이름( * ) 이상window_name
함수_이름( * ) 이상 (window_definition )

어디에서window_definition있음 구문

[ existing_window_name]
[ 파티션 기준토토 사이트 추천[, ...] ]
[주문 방법토토 사이트 추천[ ASC | 설명 | 사용연산자] [ NULLS  첫 번째 | 마지막  ] [, ...] ]
[frame_clause ]

및 선택사항frame_clause다음 중 하나일 수 있음

범위 | 행frame_start범위 | 행  사이frame_start그리고frame_end

어디에서프레임_시작그리고frame_end다음 중 하나일 수 있음

무제한 선행이전
현재 행팔로잉
무한한 팔로잉

여기,토토 사이트 추천을 나타냄 자체적으로 창을 포함하지 않는 모든 값 토토 사이트 추천식 함수 호출. 그만큼파티션 기준그리고주문 기준목록에는 기본적으로 동일한 구문 및 의미그룹별그리고주문 기준전체의 절 쿼리는 토토 사이트 추천식이 항상 다음과 같다는 점을 제외하고는 토토 사이트 추천식이며 출력 열 이름이나 숫자일 수 없습니다.window_name은 다음에 대한 참조입니다. 쿼리의에 정의된 명명된 창 사양절. 또는 전체window_definition다음 내에 주어질 수 있습니다. 괄호(이름이 지정된 항목을 정의할 때와 동일한 구문 사용) 창에서절; 참조하세요PostgreSQL : 문서 : 9.2 : 롤 토토참조 페이지 세부. 그 점을 지적할 가치가 있습니다.이상 이름정확히는 다음과 동일하지 않습니다.이상 (wname); 후자는 복사를 의미하고 창 정의를 수정하면 거부됩니다. 참조된 창 사양에는 프레임 절이 포함되어 있습니다.

frame_clause지정 를 구성하는 행 집합창 액자, 프레임에 작용하는 창 기능용 전체 파티션 대신. 만약에frame_end생략되었으며 기본값은현재 행. 제한 사항은 다음과 같습니다.frame_start될 수 없습니다제한 없는 팔로우, frame_end될 수 없습니다무제한 선행그리고frame_end선택사항은 다음에서 더 일찍 나타날 수 없습니다. 위의 목록보다프레임_시작선택 - 예를 들어현재 행과 사이의 범위이전허용되지 않습니다. 그만큼 기본 프레이밍 옵션은 다음과 같습니다.범위 제한 없음 선행, 이는와 동일합니다.범위 경계 없는 선행 행과 현재 행 사이; 그것은 설정합니다 프레임은 파티션 시작부터 시작되는 모든 행이 됩니다. 현재 행의 마지막 피어주문 에 의해순서(행이 없는 경우 모든 행을 의미함)주문 기준). 일반적으로,무제한 선행프레임이 시작됨을 의미합니다. 파티션의 첫 번째 행과 유사하게제한 없는 팔로우프레임이 종료됨을 의미합니다. 파티션의 마지막 행으로(관계없이)범위또는모드). 안에모드,현재 열프레임이 현재로 시작하거나 끝나는 것을 의미합니다. 열; 하지만범위모드는 다음을 의미합니다 프레임은 현재 행의 첫 번째 또는 마지막으로 시작하거나 끝납니다. 동료는주문 기준주문. 그만큼 이전그리고 팔로우케이스는 현재 다음에서만 허용됩니다.모드. 프레임이 시작됨을 나타냅니다. 또는 현재 행 앞이나 뒤의 많은 행으로 끝납니다. 열.정수여야 합니다. 변수를 포함하지 않는 토토 사이트 추천식, 집계 함수, 또는 창 기능. 값은 null 또는 음수일 수 없습니다. 그러나 현재 행 자체를 선택하는 0일 수 있습니다.

내장된 창 기능은 다음에 설명되어 있습니다.표 9-48. 사용자가 다른 창 기능을 추가할 수 있습니다. 또한, 어떤 내장 또는 사용자 정의 집계 함수를 창 기능.

다음을 사용하는 구문*다음 용도로 사용됩니다. 매개변수가 없는 집계 함수를 창 함수로 호출 예를 들어count(*) OVER (PARTITION BY x 주문순서: y). 별표(*)는 일반적으로 집계되지 않은 창 기능에는 사용되지 않습니다. 집계 창 함수는 일반 집계 함수와 달리 허용하지 않음독특또는주문 기준함수 인수 내에서 사용됩니다. 목록.

창 함수 호출은 다음에서만 허용됩니다.선택목록 및주문 에 의해쿼리의 절.

창 기능에 대한 더 많은 정보는 다음에서 찾을 수 있습니다.4800 |6000 토토 사이트 순위0 |4800 |6000 토토 사이트 순위0 |6000 토토 사이트 순위0 |_4800 |6000 토토 사이트 순위0 |6000 토토 사이트 순위0 |4800 |500 토토 사이트 순위0 |4800 |6000 토토 사이트 순위0 |6000 토토 사이트 순위0 |4800 |4800 |500 토토 사이트 순위0 토토 사이트 순위0 토토 사이트 순위0 |6, 섹션 9.21, 섹션 7.2.4.

4.2.9. 유형 캐스트

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

캐스트(토토 사이트 추천AS유형 )
토토 사이트 추천::유형

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

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

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

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

유형 이름 ( 토토 사이트 추천 )

그러나 이것은 이름이 다음과 같은 유형에 대해서만 작동합니다. 함수 이름으로 유효합니다. 예를 들어,배정밀도이런 식으로 사용할 수는 없지만 동등한float8할 수 있습니다. 또한, 이름간격, 시간타임스탬프할 수 있다 큰따옴표로 묶인 경우에만 이런 방식으로 사용됩니다. 구문 충돌. 따라서 함수와 같은 사용 캐스트 구문으로 인해 불일치가 발생하므로 아마도 피했다.

참고:함수와 유사한 구문은 사실 함수 호출. 두 가지 표준 캐스트 구문 중 하나가 런타임 변환을 수행하는 데 사용되며 내부적으로 등록된 함수를 호출하여 변환을 수행합니다. 에 의해 규칙에 따라 이러한 변환 함수는 동일한 이름을 갖습니다. 출력 유형으로 지정되므로"함수와 유사한 구문"그 이상은 아닙니다 기본 변환 함수를 직접 호출합니다. 물론 이것은 휴대용이 아닙니다. 응용 프로그램은 의존해야합니다. 자세한 내용은 참조PostgreSQL : 문서 : 9.2 : 토토 결과 생성.

4.2.10. 대조 토토 사이트 추천식

콜레이트절이 다음을 재정의합니다. 토토 사이트 추천식의 조합. 라는 토토 사이트 추천에 덧붙여집니다. 적용 대상:

expr콜레이트조합

어디에서조합은 아마도 스키마 한정 식별자일 수 있습니다. 그만큼콜레이트절은 연산자보다 더 엄격하게 바인딩됩니다. 필요한 경우 괄호를 사용할 수 있습니다.

데이터 정렬이 명시적으로 지정되지 않은 경우 데이터베이스 시스템은 또는 관련된 열에서 데이터 정렬을 파생합니다. 토토 사이트 추천식이거나 기본적으로 기본 데이터 정렬이 사용됩니다. 토토 사이트 추천식에 포함된 열이 없는 경우 데이터베이스입니다.

두 가지 일반적인 용도콜레이트절이 정렬 순서를 재정의합니다.주문 기준절, 예:

tbl WHERE에서 a, b, c를 선택하세요 ... 한 부씩 "C"로 주문하세요;

및 함수 또는 연산자 호출의 대조 재정의 로케일을 구분하는 결과가 있습니다. 예를 들면 다음과 같습니다.

SELECT * FROM tbl WHERE a  'foo' COLLATE "C";

후자의 경우에는콜레이트절이 입력 인수에 첨부되어 있습니다. 우리가 영향을 미치고 싶은 운영자의. 어느 것이든 상관없어 연산자 또는 함수 호출의 인수는콜레이트절이 다음에 첨부되었습니다. 연산자나 함수에 의해 적용되는 데이터 정렬은 다음과 같습니다. 모든 인수를 고려하여 도출되었으며 명시적인콜레이트절이 다음을 재정의합니다. 다른 모든 인수의 조합. (일치하지 않는 첨부)콜레이트둘 이상의 절 그러나 주장은 오류입니다. 자세한 내용은 참조섹션 22.2.) 따라서 이는 동일한 결과를 제공합니다. 이전 예의 결과:

SELECT * FROM tbl 대조 위치 "C"  'foo';

그러나 이것은 오류입니다:

SELECT * FROM tbl WHERE (a  'foo') "C" 대조;

왜냐하면 다음 결과에 대조를 적용하려고 시도하기 때문입니다. 그만큼연산자입니다. 대조할 수 없는 데이터 유형부울.

4.2.11. 스칼라 하위 쿼리

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

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

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

4.2.12. 정렬 생성자

배열 생성자는 배열을 만드는 토토 사이트 추천식입니다 멤버 요소의 값을 사용하여 값을 지정합니다. 간단한 배열 생성자는 키워드로 구성됩니다.어레이, 왼쪽 대괄호[, 토토 사이트 추천식 목록(쉼표로 구분) 배열 요소 값의 경우 마지막으로 오른쪽 사각형 까치발]. 예를 들어:

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

기본적으로 배열 요소 유형은 다음의 일반적인 유형입니다. 멤버 토토 사이트 추천식은 와 동일한 규칙을 사용하여 결정됩니다.유니온또는사례구조물(참조PostgreSQL :). 명시적으로 캐스팅하여 이를 재정의할 수 있습니다. 배열 생성자를 원하는 유형으로 설정합니다. 예를 들면 다음과 같습니다.

배열 선택[1,2,22.7]::정수[];
  정렬
----------
 1,2,23

이것은 각 토토 사이트 추천식을 배열 요소 유형을 개별적으로 지정합니다. 캐스팅에 대한 자세한 내용은 다음을 참조하세요.섹션 4.2.9.

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

배열 선택[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

빈 배열을 구성할 수 있지만 불가능하기 때문에 유형이 없는 배열을 가지려면 명시적으로 캐스팅해야 합니다. 원하는 유형으로 빈 배열을 만듭니다. 예를 들어:

선택 배열[]::integer[];
 정렬
-------

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

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

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

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

4.2.13. 행 생성자

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

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

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

행 생성자는 다음 구문을 포함할 수 있습니다.행값.*, 행의 요소 목록으로 확장됩니다. 값은 다음과 같습니다..*구문은 a의 최상위 수준에서 사용됩니다.선택목록(참조섹션 8.16.5). 을 위한 예, 테이블인 경우t열이 있음f1그리고f2, 이것들은 동일합니다:

t에서 행 선택(t.*, 42);
t에서 행 선택(t.f1, t.f2, 42);

참고:이전포스트그레SQL8.2, 그.*구문이 행에서 확장되지 않았습니다. 생성자, 그래서 쓰기ROW(t.*, 42)첫 번째 필드가 다음과 같은 2개의 필드 행을 생성했습니다. 다른 행 값. 일반적으로 새로운 동작이 더 유용합니다. 중첩된 행 값의 이전 동작이 필요한 경우 다음을 작성하십시오. 없는 내부 행 값.*, 예를 들어ROW(t, 42).

기본적으로 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(table.*) IS ​​NULL FROM 테이블;  -- 모두 null 행을 감지

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

4.2.14. 발현 평가 규칙

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

또한, 토토 사이트 추천식의 결과가 다음과 같을 수 있다면 그 중 일부만 평가하여 결정한 다음 다른 부분을 평가하여 결정합니다. 하위 토토 사이트 추천식은 전혀 평가되지 않을 수 있습니다. 예를 들어, 만약 한 사람이 썼습니다:

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

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

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

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

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

평가 순서를 강제하는 것이 필수적인 경우, a사례구조물 (참조섹션 9.17)을 사용할 수 있습니다. 을 위한 예를 들어, 이는 회피하려는 신뢰할 수 없는 방법입니다. 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대신.)

사례이런 경우에는 만병통치약이 아닙니다 그러나 문제. 설명된 기술의 한 가지 제한 사항 위의 내용은 상수의 조기 평가를 방해하지 않는다는 것입니다. 하위 토토 사이트 추천. 설명된 대로섹션 35.6, 함수 및 표시된 연산자불변될 수 있습니다 쿼리가 계획된 시점이 아닌 계획된 시점에 평가됩니다. 실행. 따라서 예를 들어

SELECT CASE WHEN x  0 THEN x ELSE 1/0 END FROM 탭;

다음으로 인해 0으로 나누기 실패가 발생할 가능성이 높습니다. 플래너는 상수 하위 토토 사이트 추천식을 단순화하려고 시도합니다. 테이블의 모든 행에는x 0그래서 그ELSE팔은 결코 그렇지 않을 것입니다 런타임에 입력되었습니다.

그 특별한 예는 어리석게 보일 수도 있지만 관련이 있습니다. 분명히 상수를 포함하지 않는 경우가 발생할 수 있습니다. 함수 내에서 실행되는 쿼리(함수 값 이후) 인수와 지역 변수는 다음과 같이 쿼리에 삽입될 수 있습니다. 계획 목적을 위한 상수입니다. 이내에PL/pgSQL함수(예: 사용)IF-그때-ELSE에 대한 진술 위험한 계산을 보호하는 것이 단지 중첩하는 것보다 훨씬 안전합니다. 에서사례토토 사이트 추천.

동일한 종류의 또 다른 제한 사항은 다음과 같습니다.사례집계 평가를 방지할 수 없습니다. 그 안에 토토 사이트 추천식이 포함되어 있습니다. 집계 토토 사이트 추천식이기 때문입니다. a의 다른 토토 사이트 추천식보다 먼저 계산됩니다.선택목록 또는가지고 있는 중절이 고려됩니다. 예를 들어 다음 쿼리는 겉보기에도 불구하고 0으로 나누기 오류가 발생합니다. 이에 대해 보호됩니다:

최소(직원)  0인 경우 사례 선택
            THEN 평균(비용 / 직원)
       끝
    부서에서;

분()그리고평균()집계가 동시에 계산됩니다. 모든 입력 행에 걸쳐 있으므로 행에 다음이 있는 경우직원0과 같음, 0으로 나누기 오류가 발생하기 전에 발생합니다. 결과를 테스트할 기회분(). 대신에 a를 사용하세요.어디에서56103_56206