4D v14.3

DISTINCT VALUES

ホーム

 
4D v14.3
DISTINCT VALUES

DISTINCT VALUES 


 

DISTINCT VALUES ( aField ; array ) 
引数   説明
aField  フィールド in データとして使用する、インデックス可能なフィールド
array  配列 in フィールドデータを受け取る配列

説明   

DISTINCT VALUESコマンドは、aFieldが属するテーブルのカレントセレクションのaFieldフィールドからの重複しない(ユニークな)値で構成されるarray配列を作成します。

DISTINCT VALUESコマンドには、インデックスが可能な (インデックスをサポートするタイプの) フィールドを渡すことができます。実際にインデックスされている必要はありません。
しかし、インデックス付けされていないフィールドでこのコマンドを実行すると遅くなります。また、この場合、コマンドはカレントレコードを失うことに注意してください。

DISTINCT VALUESはカレントセレクションのレコードをブラウズし、重複しない値を保持します。

注: トランザクション中にDISTINCT VALUESコマンドが呼び出された場合、トランザクション中に作成されたレコードも処理の対象となります。

DISTINCT VALUESを呼び出す前に配列を作成した場合、このコマンドは、その配列タイプがフィールドタイプと互換であることを期待します。そうでない場合、インタプリタモードでは、DISTINCT VALUESは適切なタイプの配列を作成します。フィールドが時間型ならば、このコマンドは倍長整数の配列を期待または作成します。

DISTINCT VALUES で使用される配列は、第一引数渡すフィールドと型が一致している必要があります。一致していない場合、配列の型は修正されます。このルールには一つの例外があります: フィールドがピクチャ型である(かつキーワードインデックスと関連付けられている)場合、対応する配列はテキスト型でなければなりません。

コマンドの呼び出し後、配列のサイズはセレクション中の重複しない値の数と同じです。コマンドはカレントセレクションまたはカレントレコードを変更することはありません。 DISTINCT VALUES コマンドはフィールドのインデックスを使用するので、array中の要素は昇順でソートされて返されます。これが目的の並べ替え順であれば、DISTINCT VALUESを使用した後にSORT ARRAYコマンドを呼び出す必要はありません。

: DISTINCT VALUESを キーワードインデックスが適用されたテキストフィールドに対して実行すると、コマンドはインデックスのキーワードで構成される配列を作成します。他のタイ プのデータと異なり、返される値はインデックスの存在により異なります。テキストフィールドの場合、フィールドに標準のインデックスが定義されていても、 常にキーワードインデックスが採用されます。テキストやピクチャーフィールドにキーワードインデックスが割り当てられていない場合、空の配列が返されま す。

警告: DISTINCT VALUESコマンドは、セレクション及びそこ に含まれる重複しない値の数によって非常に大きな配列を作成する場合があります。配列はメモリ上に存在します。そのためコマンドの実行後、結果をテストす るのは良いことです。これを行うには、作成された配列のサイズをテストするか、ON ERR CALLプロジェクトメソッドを使用してコマンドの呼び出しをカバーします。

4D Server: このコマンドは4D Server用に最適化されています。サーバ側で配列の作成と値の計算が行われ、その後全体がクライアントに送られます。

以下の例は、カレントセレクションから都市のリストを作成します。そして、会社の店舗がある都市の数を求めます:

 ALL RECORDS([Retail Outlets]` レコードのセレクションを作成
 DISTINCT VALUES([Retail Outlets]City;asCities)
 ALERT("会社は"+String(Size of array(asCities))+"都市に店舗を持ちます。")

"Pictures"フィールドに割り当てられたキーワードインデックスの完全なリストを取得します:

 ALL RECORDS([PICTURES])
 ARRAY TEXT(<>_MyKeywords;10)
 DISTINCT VALUES([PICTURES]Photos;<>_MyKeywords)

 
プロパティ 

プロダクト: 4D
テーマ: 配列
番号: 339

リモートモードでは動作が異なります。

 
履歴 

変更: 4D v11 SQL

 
参照 

ON ERR CALL
SELECTION RANGE TO ARRAY
SELECTION TO ARRAY

 
タグ 

index mots-clés, mots-clés

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v14.3)

Inherited from : DISTINCT VALUES ( 4D v14 R2)