4D v12.4

DISTINCT VALUES

Home

 
4D v12.4
DISTINCT VALUES

 

DISTINCT VALUES 


 

DISTINCT VALUES ( Feldname ; ArrayName ) 
Parameter Typ   Beschreibung
Feldname  Feld in Feld oder Unterfeld für Daten
ArrayName  Array in Array, das indizierte Daten aus Feldern erhält

Der Befehl DISTINCT VALUES erstellt und füllt Array mit nicht-wiederholten (einmaligen) Werten aus dem Datenfeld Feldname für die aktuelle Auswahl der Tabelle, zu der das Datenfeld gehört.

Sie können in diesem Befehl jedes indizierbare Feld übergeben, d.h. dessen Typ die Indizierung unterstützt, auch wenn es derzeit nicht indiziert ist.
Der Befehl ist jedoch langsamer, wenn auf nicht-indizierte Felder ausgeführt wird. Beachten Sie, dass er in diesem Fall auch den aktuellen Datensatz verliert.

DISTINCT VALUES durchläuft und entnimmt nicht-wiederholte Werte nur aus der aktuellen Auswahl der Datensätze.

Hinweis: DISTINCT VALUES berücksichtigt beim Aufrufen während einer noch nicht abgeschlossenen Transaktion die Datensätze, die in dieser Transaktion erstellt wurden.

Erstellen Sie ein Array vor dem Aufrufen, erwartet DISTINCT VALUES einen Array-Typ, der mit dem übergebenen Datenfeld oder Unterdatenfeld kompatibel ist. Ansonsten erstellt DISTINCT VALUES ein Array von eigenem Typ. Ist das Datenfeld bzw. Unterdatenfeld vom Typ Zeit, erwartet oder erstellt der Befehl ein Array vom Typ Lange Ganzzahl.

Nach dem Aufruf ist die Größe des Array gleich der Anzahl der in der Auswahl gefundenen eindeutigen Werte. Der Befehl ändert weder die aktuelle Auswahl noch den aktuellen Datensatz. Da DISTINCT VALUES mit dem Index des Datenfelds arbeitet, werden die Elemente in Array in aufsteigender Reihenfolge sortiert übertragen. Bei anderer Reihenfolge müssen Sie nach dem Befehl SORT ARRAY aufrufen.

Hinweis: Wird DISTINCT VALUES mit einem Textfeld mit zugewiesenem Volltext-Index ausgeführt, füllt der Befehl das Array mit den Schlüsselwörtern des Index. Deshalb variieren die zurückgegebenen Werte im Gegensatz zu anderen Datentypen je nach Vorhandensein des Index. Der Volltext-Index wird immer berücksichtigt, selbst wenn dem Feld auch ein Standard-Index zugewiesen ist.

WARNUNG: DISTINCT VALUES erstellt u.U. umfangreiche Arrays, je nach Größe der Auswahl und Anzahl der verschiedenen Werte in den Datensätzen. Da Arrays im Speicher bleiben, empfehlen wir, das Ergebnis nach Ende des Befehls zu testen. Prüfen Sie die Größe jedes resultierenden Array oder sichern Sie den Aufruf dieses Befehls mit einer Projektmethode ON ERR CALL.

4D Server: DISTINCT VALUES wurde für 4D Server optimiert. Das Array wird auf dem Server erstellt und berechnet; es wird dann komplett auf den Client-Rechner übertragen.

Folgendes Beispiel erstellt eine Städteliste aus der aktuellen Auswahl und teilt dem Benutzer die Anzahl der Städte mit, in denen die Firma Läden unterhält:

 ALL RECORDS([Retail Outlets]` Erstelle eine Datensatzauswahl
 DISTINCT VALUES([Retail Outlets]City;asCities)
 ALERT("Die Firma hat Läden in "+String(Size of array(asCities))+" cities.")

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Arrays
Nummer: 339

Im Remote Modus anderes Verhalten

 
GESCHICHTE 

Geändert: 4D v11 SQL

 
SIEHE AUCH 

ON ERR CALL
SELECTION RANGE TO ARRAY
SELECTION TO ARRAY

 
SCHLÜSSELWÖRTER 

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