QlikWorld 2020 Global Conference. Join us to discover how to get the most from your data. Act fast. Register now and save.

Select

ODBC データ ソースまたは OLE DB プロバイダの項目選択は、標準的な SQL SELECT ステートメントを介して実行されます。ただし、SELECT ステートメントが許可されるかどうかは、使用する ODBC ドライバまたは OLE DB プロバイダによって異なります。

Syntax:  

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 ]

 

さらに、union 演算子を使用して、複数の SELECT ステートメントを 1 つに連結できる場合があります。

selectstatement Union selectstatement

 

SELECTステートメントは、ODBCドライバまたは OLE DB プロバイダによって解釈されるため、ODBC ドライバまたはOLE DB プロバイダの機能の違いにより、一般的な SQL 構文との差が生じる場合があります。

  • as を使用できない場合があります。(その場合、aliasname は必ず fieldname の直後に記述する必要があります。)
  • aliasname を使用すると as の記述が必要になる場合があります。
  • distinctaswheregroup byorder byunion は、使用できないことがあります。
  • ODBC ドライバによっては、前述した引用符の一部を使用できない場合があります。
注: これは、SQL SELECT ステートメントのすべてを説明したものではありません。例えば、SELECT ステートメントはネストしたり、複数の結合を 1 つの SELECT ステートメントで実行したり、数式で膨大な関数を使用できる場合があります。

Arguments:  

引数 説明
distinct distinct は、選択した項目の値の組み合わせが重複している場合に 1 回だけロードする際に使用する述語です。
distinctrow distinctrow は、ソース テーブルに含まれるレコードが重複している場合に 1 回だけロードする際に使用する述語です。
fieldlist fieldlist ::= (*| field ) {, field }

選択する項目のリスト。* を使用すると、テーブルのすべての項目が指定されます。

fieldlist ::= field {, field }

コンマで区切られた 1 つまたは複数の項目のリスト。

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

数式には、他の項目に基づいた数値や文字列関数を 1 つまたは複数使用できます。通常使用できる演算子および関数には、+-*/& (文字連結)、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 節は、複数のレコードを 1 つに集計 (グループ化) する際に使用します。1 つのグループに含まれる特定の項目のレコードは、すべて同じ値を持たなければなりません。そうでない場合は、項目は sum または average などの数式内でのみ使用する必要があります。1 つまたは複数の項目に基づいた数式は、項目記号の数式で定義されます。
having having 節は、レコードを修飾する where 節と同様の方法で、グループを修飾する際に使用します。
order by order by 節は、SELECT ステートメントの結果のテーブルのソート順を示します。
join join 修飾子は、複数のテーブルを 1 つに結合することを示します。項目名とテーブル名に、スペースや各国語文字セットが含まれる場合は、引用符で囲む必要があります。Qlik Senseで自動生成されるスクリプトについては、Connectステートメントのデータ ソース定義で指定される ODBC ドライバまたは OLE DB プロバイダ推奨の引用符が使用されます。

Example 1:  

SELECT * FROM `Categories`;

Example 2:  

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

Example 3:  

SELECT `Order ID`, `Product ID`,

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

FROM `Order Details`;

Example 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`;

See also: