Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products.
All content is subject to change and is provided without warranty.
跳到主要內容 跳至補充內容

Select

透過標準 SQL SELECT 陳述式可選取來自 ODBC 資料來源或 OLE DB 提供者的欄位。不過,SELECT 陳述式是否能接受取決於使用的 ODBC 驅動程式或 OLE DB 提供者。

語法:  

Select [all | distinct | distinctrow | top n [percent] ] fieldlist

From tablelist

[where criterion ]

[group by fieldlist [having criterion ] ]

[order by fieldlist [asc | desc] ]

[ (Inner | Left | Right | Full) join tablename on fieldref = fieldref ]

 

此外,數個 SELECT 陳述式有時可透過使用 union 運算子串連成一個。

selectstatement Union selectstatement

 

SELECT 陳述式是由 ODBC 驅動程式或 OLE DB 提供者解譯,因此,根據 ODBC 驅動程式或 OLE DB 提供者的能力,可能發生一般 SQL 語法的偏差,例如:

  • 有時候不允許 as,例如 aliasname 必須緊接在 fieldname 後。
  • 如果使用 aliasname,則有時會強制使用 as
  • 有時不支援 distinctaswheregroup byorder byunion
  • ODBC 驅動程式有時不接受所有上列的不同引號。
資訊備註這不是 SQL SELECT 陳述式的完整描述!例如,SELECT 陳述式可為巢狀、可在一個 SELECT 陳述式中進行數個聯結、運算式中允許的函數有時會非常大量等等。

引數:  

Select 引數
引數 描述
distinct distinct 是一個述詞,於僅載入一次所選欄位中的重複值組合時才會使用。
distinctrow distinctrow 是一個述詞,於僅載入一次來源表格中的重複記錄時才會使用。
fieldlist fieldlist ::= (*| field ) {, field }

要選取的欄位清單。使用 * 做為欄位清單表示表格中的所有欄位。

fieldlist ::= field {, field }

一或多個欄位的清單,以逗號分隔。

field ::= ( fieldref | expression ) [as aliasname ]

運算式可以是基於一或數個其他欄位的數值或字串函數。通常會接受的某些運算子與函數如下:+-*/& (字串串連)、sum(fieldname)count(fieldname)avg(fieldname)(average)month(fieldname) 等。如需詳細資訊,請參閱 ODBC 驅動程式的文件。

fieldref ::= [ tablename. ] fieldname

tablenamefieldname 是名副其實的文字字串。如果其包含空格,則必須由直雙引號括住。

as 子句用來指派欄位的新名稱。
from tablelist ::= table {, table }

要從其中選取欄位的表格清單。

table ::= tablename [ [as ] aliasname ]

tablename 不一定會在引號內。

From

where where 是指明選項中是否應該包含記錄的子句。

criterion 是一個邏輯運算式,有些時候可能會非常複雜。接受的部分運算子為:數值運算子和函數、=<>#(不等於)、>>=<<=andornotexistssomeallin 以及新的 SELECT 陳述式。如需詳細資訊,請參閱 ODBC 驅動程式或 OLE DB 提供者的文件。

group by group by 是一個子句,用來將數筆記錄彙總 (分組) 成一筆記錄。在一個群組內的某些欄位中,所有記錄都必須擁有相同的值,否則只能從運算式內使用該欄位,例如做為加總或平均。基於一或數個欄位的運算式會定義於欄位符號的運算式中。
having having 是一個子句,用來限定群組,方式與如何使用 where 子句來限定記錄類似。
order by order by 是一個子句,用來表示 SELECT 陳述式所產生表格的排序順序。
join join 是一個限定詞,表示是否要將數個表格聯結成一個表格。如果欄位名稱與表格名稱包含空格或國家字元集的字母,則必須以引號括住。當 QlikView 自動產生指令碼時,使用的引號會是 ODBC 驅動程式或 OLE DB 提供者的慣用引號,並且它們是由Connect 陳述式中,資料來源的資料來源定義所指定。

範例 1:  

SELECT * FROM `Categories`;

範例 2:  

SELECT `Category ID`, `Category Name` FROM `Categories`;

範例 3:  

SELECT `Order ID`, `Product ID`,

`Unit Price` * Quantity * (1-Discount) as NetSales

FROM `Order Details`;

範例 4:  

SELECT `Order Details`.`Order ID`,

Sum(`Order Details`.`Unit Price` * `Order Details`.Quantity) as `Result`

FROM `Order Details`, Orders

where Orders.`Order ID` = `Order Details`.`Order ID`

group by `Order Details`.`Order ID`;

瞭解更多資訊

 

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!

加入分析現代化計畫

Remove banner from view

透過分析現代化程式進行現代化而不犧牲寶貴的 QlikView 應用程式。 按一下這裡 取得更多資訊或聯繫: ampquestions@qlik.com