이전 섹션에 표시된 대로,선택명령은 다음을 구성합니다. 테이블, 뷰, 행 제거, 그룹화 등. 이 테이블이 최종적으로 전달됩니다. 다음 처리를 위해목록 선택. 는 선택 목록이 무엇을 결정하는지를 결정합니다.열중간 테이블의 실제로 출력됩니다.
가장 간단한 종류의 선택 목록은*테이블이 생성하는 모든 열을 내보냅니다. 표현이 생산됩니다. 그렇지 않으면 선택 목록은 쉼표로 구분된 값 표현식 목록(에 정의됨)PostgreSQL : 문서 : 9.1 : 값 토토 꽁 머니식). 예를 들어, 열 이름 와이즈 토토일 수 있습니다.
다음에서 a, b, c 선택 ...
열 이름a, b및c다음 중 하나입니다. 에서 참조된 테이블 열의 실제 이름발신절 또는 다음에 제공된 별칭 에 설명된 대로섹션 7.2.1.2. 선택 목록에서 사용할 수 있는 네임스페이스는 와 동일어디절, 그렇지 않은 경우 그룹화를 사용하는데, 이 경우는하빙절.
둘 이상의 테이블에 동일한 이름의 열이 있는 경우, 다음과 같이 테이블 이름도 지정해야 합니다.
에서 tbl1.a, tbl2.a, tbl1.b 선택 ...
여러 테이블로 작업할 때 다음을 수행하는 것도 유용할 수 있습니다. 특정 테이블의 모든 열을 요청합니다.
tbl1.*, tbl2.a FROM ...을 선택하세요.
(또한 참조섹션 7.2.2.)
선택 목록에서 임의의 값 표현식이 사용되는 경우, 개념적으로 반환된 열에 새 가상 열을 추가합니다. 테이블. 값 표현식은 각 결과에 대해 한 번 평가됩니다. 행(행의 값이 임의의 열로 대체됨) 참조. 하지만 선택 목록의 표현식에는 의 테이블 표현식에 있는 모든 열을 참조하려면발신절; 그들은 일정할 수 있다 예를 들어 산술 표현식.
선택 목록의 항목에는 다음에 대한 이름이 할당될 수 있습니다. 후속 처리(예:주문 기준절 또는 클라이언트 표시용 신청. 예를 들면:
AS 값 선택, b + c AS 합계 FROM ...
다음을 사용하여 출력 열 이름이 지정되지 않은 경우AS, 시스템은 기본 열 이름을 할당합니다. 단순 열 참조의 경우 이는 참조된 열입니다. 함수 호출의 경우 이는 기능. 복잡한 표현식의 경우 시스템은 일반 이름.
그AS키워드는 선택사항이지만 새 열 이름이 일치하지 않는 경우에만와이즈 토토키워드(참조부록 C). 피하기 위해 키워드와 실수로 일치하는 경우 열을 큰따옴표로 묶을 수 있습니다. 이름. 예를 들어,값은 키워드이고, 그래서 이것은 작동하지 않습니다:
값 선택, b + c AS sum FROM ...
그러나 이것은 다음과 같습니다:
"값" 선택, b + c AS sum FROM ...
향후 키워드 추가 가능성을 방지하기 위해 항상 다음 중 하나를 작성하는 것이 좋습니다.AS또는 출력 열 이름을 큰따옴표로 묶으십시오.
참고:여기서 출력 열의 이름은 다음과 같습니다. 에서 수행된 것과는 다릅니다.발신절(참조섹션 7.2.1.2). 동일한 열의 이름을 바꿀 수 있습니다 두 번 선택했지만 선택 목록에 지정된 이름은 전달됩니다.
선택 목록이 처리된 후 결과 테이블은 선택적으로 중복 행을 제거할 수 있습니다.독특키워드가 기록되었습니다 바로 뒤에선택지정하다 이:
특정 선택select_list ...
(대신에독특핵심 단어전체기본값을 지정하는 데 사용할 수 있습니다. 모든 행을 유지하는 동작입니다.)
분명히 두 행이 다른 경우 서로 다른 행으로 간주됩니다. 하나 이상의 열 값에. Null 값은 동일한 것으로 간주됩니다. 이 비교에서는.
또는 임의의 표현으로 무엇을 결정할 수 있습니다. 행은 별개로 간주됩니다.
선택할 구별 항목: (표현 [, 표현 ...]) select_list ...
여기표현은 모든 행에 대해 평가되는 임의 값 표현식입니다. 에이 모든 표현식이 동일한 행 집합은 다음과 같습니다. 중복으로 간주되며 세트의 첫 번째 행만 출력에 보관됩니다. 참고하세요"먼저 행"세트의 쿼리는 쿼리가 아닌 이상 예측할 수 없습니다. 고유한 순서를 보장하기에 충분한 열을 기준으로 정렬되었습니다. 에 도착하는 행독특필터. (구별 ON다음 이후에 처리 발생주문 기준정렬.)
그구별 ON절이 일부가 아닙니다 SQL 표준에 속하며 때로는 나쁜 스타일로 간주됩니다. 결과가 불확실할 가능성이 있기 때문입니다. 신중하게 사용하여그룹별그리고 하위 쿼리발신, 이 구성은 다음을 수행할 수 있습니다. 피해야 하지만 가장 편리한 경우가 많습니다. 대안.