이전 섹션에서 볼 수 있듯이의 테이블 표현식.select
명령은 테이블, 뷰 제거, 행 제거, 그룹화 등을 결합하여 중간 가상 테이블을 구성합니다.목록 롤 토토. 롤 토토 목록은 어느를 결정합니다.열중간 테이블의 실제로 출력이 있습니다.
가장 간단한 롤 토토 목록은입니다.*
테이블 표현식이 생성하는 모든 열을 방출합니다. 그렇지 않으면 롤 토토 목록은 쉼표로 구분 된 값 표현 목록입니다 (PostgreSQL : 문서 : 10 : 4.2. 가치 와이즈 토토). 예를 들어, 열 이름의 목록 일 수 있습니다.
A, B, C를 롤 토토하십시오 ...
열 이름a
, b
및c
|from
절 또는 다음과 같이 설명 된 별칭섹션 7.2.1.2. 롤 토토 목록에서 사용 가능한 이름 공간은와 동일합니다.여기서
조항, 그룹화가 사용되지 않는 한,이 경우와 동일합니다.절.
하나 이상의 테이블이 같은 이름의 열이 있으면 :와 같이 테이블 이름도 제공해야합니다.
TBL1.A, TBL2.A, TBL1.B에서 롤 토토한 ...
여러 테이블로 작업 할 때 특정 테이블의 모든 열을 요청하는 것이 유용 할 수도 있습니다.
선택 TBL1.*, tbl2.a from ...
참조섹션 8.16.5에 대한 자세한 내용은table_name
.*
표기법.
선택 목록에 임의의 값 표현식이 사용되면 개념적으로 리턴 된 테이블에 새 가상 열을 추가합니다. 값 표현식은 각 결과 행에 대해 한 번 평가되며 행의 값은 모든 열 참조로 대체됩니다.from
절; 예를 들어 끊임없는 산술 표현 일 수 있습니다.
롤 토토 목록의 항목은 AN에서 사용하기 위해 후속 처리에 이름을 할당 할 수 있습니다주문 by
클라이언트 응용 프로그램에 의한 조항 또는 표시. 예를 들어:
a as 값, b + c에서 sum from에서 a를 선택하십시오 ...
출력 열 이름이없는 경우as
, 시스템은 기본 열 이름을 할당합니다. 간단한 열 참조의 경우 참조 열의 이름입니다.
theas
키워드는 선택 사항이지만 새 열 이름이 일치하지 않는 경우에만postgresql키워드 (참조부록 C). 키워드와 우발적으로 일치하지 않으려면 열 이름을 두 배로 인용 할 수 있습니다.value
키워드이므로 작동하지 않습니다.
값을 롤 토토하고, b + c는 ...
그러나 이것은 :
"값", B + C를 롤 토토하여 ...
향후 키워드 추가로부터 보호하려면 항상 쓰기를 권장합니다as
출력 열 이름을 두 배로 늘리십시오.
여기에서 출력 열의 이름 지정은에서 수행 한 것과 다릅니다.from
절 (참조섹션 7.2.1.2). 동일한 열의 이름을 두 번 바꿀 수 있지만 롤 토토 목록에 할당 된 이름은 전달 될 이름입니다.
별개의
롤 토토 목록이 처리 된 후 결과 테이블은 롤 토토적으로 중복 행을 제거 할 수 있습니다. 그만큼별개의
키워드가 직접 작성됩니다select
이것을 지정하려면 :
별도의 롤 토토select_list
...
(대신별개의
키워드all
모든 행을 유지하는 기본 동작을 지정하는 데 사용할 수 있습니다.)
분명히, 두 행은 하나 이상의 열 값이 다른 경우 뚜렷한 것으로 간주됩니다. 이 비교에서 널 값은 동일하게 간주됩니다.
또는 대안 적으로, 임의의 표현은 어떤 행이 구별 될 것인지 결정할 수 있습니다 :
별개의 선택 (표현
[,표현
...])select_list
...
여기표현
는 모든 행에 대해 평가되는 임의의 값 표현입니다. 모든 표현식이 동일하는 행 세트는 복제로 간주되며 세트의 첫 번째 행만 출력에 보관됩니다.“첫 번째 행”쿼리가 충분한 열에 정렬되지 않는 한 세트의 세트는 예측할 수 없습니다.별개의
필터. (별개의
처리 후 발생주문 by
정렬.)
the별개의
절은 SQL 표준의 일부가 아니며 결과의 불확실한 특성으로 인해 때때로 나쁜 스타일로 간주됩니다. 신중한 사용그룹 by
및 하위 쿼리from
,이 구성은 피할 수 있지만 종종 가장 편리한 대안입니다.