# Select

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)透過標準 SQL SELECT 陳述式可選取來自 ODBC 資料來源或 OLE DB 提供者的欄位。然而，是否接受 SELECT 陳述式取決於所使用的 ODBC 驅動程式或 OLE DB 提供者。 使用 SELECT 陳述式需要對來源有開放的資料連線。

語法：

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。
* 有時不支援 distinct、as、where、group by、order by 或 union。
* ODBC 驅動程式有時不接受所有上列的不同引號。

資訊備註這不是 SQL SELECT 陳述式的完整描述！例如，SELECT 陳述式可為巢狀、可在一個 SELECT 陳述式中進行數個聯結、運算式中允許的函數有時會非常大量等等。

引數：

引數

| 引數 | 描述 |
| --- | --- |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>distinct | distinct 是一個述詞，於僅載入一次所選欄位中的重複值組合時才會使用。 |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm) distinctrow | distinctrow 是一個述詞，於僅載入一次來源表格中的重複記錄時才會使用。 |
| fieldlist | fieldlist ::= (\*\| field ) {, field }<br><br>要選取的欄位清單。使用 \* 做為欄位清單表示表格中的所有欄位。<br><br>fieldlist ::= field {, field }<br><br>一或多個欄位的清單，以逗號分隔。<br><br>field ::= ( fieldref \| expression ) [as aliasname ]<br><br>運算式可以是基於一或數個其他欄位的數值或字串函數。常接受的一些運算子和函數包括：+、-、\*、/、& (字串串連)、sum(fieldname)、count(fieldname)、avg(fieldname)(average)、month(fieldname) 等。如需詳細資訊，請參閱 ODBC 的文件。<br><br>fieldref ::= [ tablename. ] fieldname<br><br><br>tablename 與 fieldname 是名副其實的文字字串。如果其包含空格，則必須由直雙引號括住。<br><br>as 子句用來指派欄位的新名稱。 |
| from | tablelist ::= table {, table }<br><br>要從其中選取欄位的表格清單。<br><br>table ::= tablename [ [as ] aliasname ]<br><br>tablename 不一定會在引號內。<br><br>[From](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/From.htm) |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>where | where 是指明選項中是否應該包含記錄的子句。<br><br>criterion 是一個邏輯運算式，有些時候可能會非常複雜。接受的部分運算子為：數值運算子和函數、=、&lt;&gt; 或 #(不等於)、&gt;、&gt;=、&lt;、&lt;=、and、or、not、exists、some、all、in 以及新的 SELECT 陳述式。如需詳細資訊，請參閱 ODBC 驅動程式或 OLE DB 提供者的文件。 |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>group by | group by 是一個子句，用來將數筆記錄彙總 (分組) 成一筆記錄。在一個群組內的某些欄位中，所有記錄都必須擁有相同的值，否則只能從運算式內使用該欄位，例如做為加總或平均。基於一或數個欄位的運算式會定義於欄位符號的運算式中。 |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>having | having 是一個子句，用來限定群組，方式與如何使用 where 子句來限定記錄類似。 |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>order by | order by 是一個子句，用來表示 SELECT 陳述式所產生表格的排序順序。 |
| [](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Select.htm)<br>join | join 是一個限定詞，表示是否要將數個表格聯結成一個表格。如果欄位名稱與表格名稱包含空格或國家字元集的字母，則必須以引號括住。當 Qlik Sense 自動產生指令碼時，使用的引號會是 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`;``

## 瞭解更多資訊

* [Connect](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/CONNECT.htm)
* [Join](https://help.qlik.com/zh-TW/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)