SELECT 清單 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SELECT 清單

SELECT 清單會指出您要查詢傳回的資料欄、函數及表達式的名稱。清單查詢的輸出。

Syntax (語法)

SELECT [ TOP number ] [ ALL | DISTINCT ] * | expression [ AS column_alias ] [, ...]

參數

TOP number

TOP 會採用正整數做為其引數,此引數定義傳回至用戶端的資料列數。TOP 子句的行為與 LIMIT 子句的行為相同。傳回的資料列數是固定的,但資料列集卻不是。若要傳回一致的資料列集,請搭配 ORDER BY 子句使用 TOP 或 LIMIT。

ALL

您未指定 DISTINCT 時,用來定義預設行為的備援關鍵字。SELECT ALL * 的意義與 SELECT * 相同 (選取所有資料欄的所有資料列並保留重複項目)。

DISTINCT

此選項會根據一個或多個資料欄中相符的值,從結果集中消除重複的資料列。

* (星號)

傳回資料表的整個內容 (所有資料欄和所有資料列)。

運算式

表達式是由查詢所參考資料表中的一個或多個資料欄構成。表達式可包含 SQL 函數。例如:

avg(datediff(day, listtime, saletime))
AS column_alias

資料欄的暫時名稱,會在最終結果集中使用。AS 關鍵字為選用。例如:

avg(datediff(day, listtime, saletime)) as avgwait

若您沒有為表達式指定非簡單資料欄名稱的別名,結果集將會套用預設名稱至該資料欄。

注意

別名在目標清單中定義之後立即直接辨識。您可以在相同目標清單中後續定義的其他表達式後面使用別名。下列的範例示範了這一點。

select clicks / impressions as probability, round(100 * probability, 1) as percentage from raw_data;

側邊別名參考的好處在於,您在相同目標清單中建構更複雜的表達式時,不需要重複有別名的表達式。當 Amazon Redshift 會分析此類型參考時,會直接內嵌先前定義的別名。若 FROM 子句中定義了與先前具有別名之表達式同名的資料欄,則 FROM 子句中的資料欄優先順序較高。例如,在上方查詢中,若 raw_data 資料表中有名為 'probability' 的資料欄,目標清單中第二個表達式內的 'probability' 會參考該資料欄,而不是 'probability' 這個別名。

使用須知

TOP 是 SQL 延伸模組;它提供了 LIMIT 行為的替代方式。您無法在相同查詢中同時使用 TOP 和 LIMIT。