# Direct Query

DIRECT QUERY ステートメントは、Direct Discovery 関数を使用している ODBC または OLE DB 接続からテーブルへのアクセスを可能にします。

構文:

DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist] [DETAIL fieldlist] FROM tablelist

[WHERE where\_clause]

DIMENSION、MEASURE、DETAIL の各キーワードは、どのような順番でも使用できます。

DIMENSION と FROM キーワード節は、すべての DIRECT QUERY ステートメントに必要です。FROM キーワードは、DIMENSION キーワードの後に配置する必要があります。

DIMENSIONキーワードの後ろに直接指定した項目は、メモリにロードされ、インメモリとDirect Discoveryデータ間の関連付けの設定に使用されます。

情報メモDIRECT QUERY ステートメントに、DISTINCT 節や GROUP BY 節を含めることはできません。

MEASURE キーワードを使用して、Qlik Sense が「メタ レベル」では認識する項目を定義します。メジャー項目の実際のデータは、データ ロード プロセス中にデータベースの中にのみ存在し、ビジュアライゼーションで使用されるチャートの数式が起動するアドホックベースで取得されます。

通常、軸として使用されることになる、不連続値を含む項目は、DIMENSION キーワードでロードする必要がありますが、集計においてのみ使用する数値は、MEASURE キーワードを使って選択しなければなりません。

DETAIL 項目は、コメント項目など、ユーザーが詳細をドリルダウンするテーブル ボックスに表示したいと考える可能性のある情報や詳細を提供します。DETAIL 項目をチャートの数式で使用することはできません。

DIRECT QUERY ステートメントは、SQL をサポートするデータ ソースに対して中立です。このため、同一の DIRECT QUERY ステートメントを変更することなく異なる SQL データベースで使用することができます。Direct Discovery は、必要に応じてデータベースに適したクエリを生成します。

ネイティブ データソース構文は、ユーザーがクエリするデータベースを把握していて、SQL にデータベース特定の拡張機能を利用したい場合に使用できます。ネイティブ データソース構文は、次の場合にサポートされます。

* DIMENSION および MEASURE 節の項目式
* WHERE 節のコンテンツ

例:

```
DIRECT QUERY 
                
```

> ```
> DIMENSION Dim1, Dim2 
>                     
> ```
>
> ```
> MEASURE 
>                     
> ```
>
> > ```
> > NATIVE ('X % Y') AS X_MOD_Y   
> >                         
> > ```

FROM TableName

DIRECT QUERY

> DIMENSION Dim1, Dim2
>
> MEASURE X, Y
>
> FROM TableName
>
> WHERE NATIVE ('EMAIL MATCHES "\\*.EDU"')

情報メモ次の用語はキーワードとして使用されているため、引用符なしで列や項目名として使用することはできません。 and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

引数：

| 引数 | 説明 |
| --- | --- |
| fieldlist | コンマ区切りの項目指定リスト、 fieldname {, fieldname}. 項目指定を項目名にすることも可能で、データベースの列名と Qlik Sense 項目名に同じ名前が使用される場合があります。または、データベース数式や列名が Qlik Sense の項目名を指定する場合、項目指定を「項目エイリアス」にすることもできます。<br><br>[Direct Discovery 項目リスト](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/direct-discovery-field-lists.htm) |
| tablelist | データのロード元となるデータベースのテーブル名またはビュー名のリストです。これは一般的には、データベース上で実行された JOIN が含まれるビューとなります。 |
| where\_clause | データベースの WHERE 節の完全な構文は、ここでは定義されませんが、ほとんどの SQL「関係式」は許容されます。これには、関数呼び出しの使用、文字列用の LIKE 演算子、IS NULL、および IS NOT NULL が含まれます。IN. BETWEEN は含まれていません。<br><br>NOT は、特定のキーワードの修飾子と対照的な単項演算子です。<br><br>例:<br><br>WHERE x &gt; 100 AND "Region Code" IN ('south', 'west')<br><br>WHERE Code IS NOT NULL and Code LIKE '%prospect'<br><br>WHERE NOT X in (1,2,3)<br><br>最後の例を次のように記述することはできません。<br><br>WHERE X NOT in (1,2,3) |

この例では、TableName と呼ばれるデータベース テーブル (Dim1、Dim2、Num1、Num2、Num3 項目を含む) が使用されます。Dim1 と Dim2 は Qlik Sense データセットにロードされます。

DIRECT QUERY DIMENSTION Dim1, Dim2 MEASURE Num1, Num2, Num3 FROM TableName ;

Dim1 と Dim2 は、軸として使用可能です。Num1、Num2、Num3 は、集計に利用可能です。Dim1 と Dim2 もまた、集計に利用できます。Dim1 と Dim2 が使用される集計タイプは、それぞれのデータ タイプによって決まります。例えば、多くの場合 DIMENSION 項目には名前や口座番号といった文字列データが含まれています。こうした項目は集計できませんが、count(Dim1) を使ってカウントすることはできます。

情報メモDIRECT QUERY ステートメントは、スクリプト エディターに直接書き込まれます。DIRECT QUERYステートメントの構造をシンプルにするには、データ接続から SELECTステートメントを生成し、生成したスクリプトを編集して DIRECT QUERY ステートメントに変更します。  
例えば、SELECT ステートメントを  
  
SQL SELECT   
SalesOrderID,  
RevisionNumber,  
OrderDate,  
SubTotal,  
TaxAmt  
FROM MyDB.Sales.SalesOrderHeader;  
  
次の DIRECT QUERY ステートメントに変更できます。  
  
DIRECT QUERY  
DIMENSION   
SalesOrderID,  
RevisionNumber  
  
MEASURE   
SubTotal,  
TaxAmt  
  
DETAIL  
OrderDate  
  
FROM MyDB.Sales.SalesOrderHeader;

## 詳細を見る

* [を利用した膨大なデータ セットへのアクセスDirect Discovery](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/DirectDiscovery/access-large-data-sets-with-direct-discovery.htm)
* [Direct Discovery 変数](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/DirectDiscovery/direct-discovery-variables.htm)