이전 섹션에 표시된 것처럼,선택명령은 중간체를 구성합니다 테이블, 뷰, 제거 등을 결합하여 가상 테이블 행, 그룹화 등. 이 테이블은 최종적으로 처리 중:목록 선택. 는 선택 목록이 무엇을 결정하는지를 결정합니다.열의 중간 테이블이 실제로 출력됩니다. 가장 간단한 종류의 선택 목록은*모든 열을 방출합니다. 테이블 표현식이 생성하는 것입니다. 그렇지 않으면 선택 목록은 쉼표로 구분된 값 표현식 목록(에 정의됨)섹션 1.3). 예를 들어, 열 이름 사설 토토이어야 합니다.
다음에서 a, b, c 선택 ...열 이름 a, b, c는 다음의 실제 이름입니다. FROM 절에서 참조되는 테이블의 열 또는 별칭 에 설명된 대로 그들에게 주어졌습니다.섹션 2.1.1.3. 이름 선택 목록에서 사용 가능한 공간은 WHERE에서와 동일합니다. 조항(그룹화가 사용되지 않는 한, 이 경우에는 HAVING 절). 두 개 이상의 테이블에 동일한 열이 있는 경우 name, 테이블 이름도 다음과 같이 제공되어야 합니다.
다음에서 tbl1.a, tbl2.b, tbl1.c 선택 ...(또한 참조섹션 2.1.2).
선택 목록에서 임의의 값 표현식이 사용되는 경우, 이는 개념적으로 반환된 테이블에 새 가상 열을 추가합니다. 값 표현식은 검색된 각 행에 대해 한 번씩 평가됩니다. 열 참조를 행 값으로 대체합니다. 하지만 선택 목록의 표현식은 어떤 항목도 참조할 필요가 없습니다. FROM 절의 테이블 표현식에 있는 열. 그들은 그럴 수도 있다 예를 들어 상수 산술 표현식도 마찬가지입니다.
선택 목록의 항목에는 다음에 대한 이름이 할당될 수 있습니다. 추가 처리."더 나아가 처리 중"이 경우에는 선택적 정렬입니다. 사양 및 클라이언트 애플리케이션(예: 열 헤더 디스플레이용). 예를 들면:
AS 값 선택, b + c AS 합계 FROM ...
AS를 통해 출력 열 이름이 지정되지 않은 경우 시스템은 기본 이름을 할당합니다. 간단한 열 참조의 경우 다음과 같습니다. 참조된 열의 이름입니다. 함수 호출의 경우 이는 다음과 같습니다. 함수의 이름. 복잡한 표현의 경우 시스템은 일반 이름을 생성합니다.
참고:여기서 출력 열의 이름은 다음과 같습니다. FROM 절에서 수행된 것과 다릅니다(참조섹션 2.1.1.3). 실제로 이 파이프라인을 사용하면 동일한 이름을 바꿀 수 있습니다. 열을 두 번 선택했지만 선택 목록에서 선택한 이름은 전달될 것입니다.
선택 목록이 처리된 후 결과 테이블은 선택적으로 중복 항목이 제거될 수 있습니다.독특키워드가 기록되었습니다 바로 뒤에선택활성화하려면 이:
특정 선택select_list ...(대신에독특말씀전체기본값을 선택하는 데 사용할 수 있습니다. 모든 행을 유지하는 동작입니다.)
분명히 두 행이 다른 경우 서로 다른 행으로 간주됩니다. 하나 이상의 열 값에. NULL은 동일한 것으로 간주됩니다. 이 비교.
또는 임의의 표현으로 무엇을 결정할 수 있습니다. 행은 별개로 간주됩니다.
다음으로 구별 선택(표현 [, 표현 ...]) select_list ...
여기표현은
모든 행에 대해 평가되는 임의 값 표현식입니다. 세트
모든 표현식이 동일한 행이 고려됩니다.
중복되며 세트의 첫 번째 행만
출력. 참고하세요"첫 번째 행"의
쿼리가 충분한 열을 기준으로 정렬되지 않으면 집합을 예측할 수 없습니다.
DISTINCT에 도착하는 행의 고유한 순서를 보장하기 위해
필터. (DISTINCT ON 처리는 ORDER BY 정렬 후에 발생합니다.)DISTINCT ON 절은 SQL 표준의 일부가 아니며 때로는 잠재적으로 나쁜 스타일로 간주됩니다. 그 결과의 불확실한 성격. 현명하게 사용하여 FROM 구문에서 GROUP BY 및 하위 선택을 피할 수 있습니다. 그러나 이것이 가장 편리한 대안인 경우가 많습니다.