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: