Die Kollationsreihenfolge steuern

Vorgehensweise:

Referenz:

Kollation ist ein Regel-Set, das auf die Sortierung und Zuordnung aller Sprachelemente zutrifft, die den Vergleich von zwei Werten beinhalten. Dieses Feature wirkt sich auf viele Elemente aus. Zu diesen Features gehören Sortierung, Aggregation, WHERE-Bedingungen und StyleSheets. Per Default werden Elemente basierend auf ihren binären Werten sortiert. Die COLLATION-Einstellungen SRV_CI und SRV_CS, nicht von Groß- und Kleinschreibung abhängige und von Groß- oder Kleinschreibung abhängige Kollation, implementieren Kollation basierend auf der LANGUAGE-Einstellung. Kollation, die nicht von Groß- und Kleinschreibung abhängig ist bedeutet, dass alle WHERE-Klauseln und Sortierungen die Groß-/Kleinschreibung der Elemente ignorieren, die verglichen werden. COLLATION ist eine Einstellung auf der Ebene der Session (wird nicht in einer ON TABLE-Phrase unterstützt und und sollte eingestellt werden im Profil edasprof server).

Die Kollationseinstellung trifft nur auf alphanumerische Werte zu.


Nach oben

x
Syntax: Binäre und von Groß- und Kleinschreibung unabhängige Kollationsreihenfolge einrichten

Fügen Sie den folgenden Befehl dem Profil server edasprof.prf hinzu:

SET COLLATION = {BINARY|SRV_CI|SRV_CS|CODEPAGE}

Hierbei gilt:

BINARY

Die Kollationsreihenfolge basiert auf binären Werten.

SRV_CI

Die Kollationsreihenfolge basiert auf der Einstellung LANGUAGE und ist nicht von Groß- oder Kleinschreibung abhängig.

SRV_CS

Die Kollationsreihenfolge basiert auf der Einstellung LANGUAGE und ist von Groß- oder Kleinschreibung abhängig.

CODEPAGE

Die Kollationsreihenfolge basiert auf der gültigen Codeseite und ist von Groß- oder Kleinschreibung abhängig. CODEPAGE ist der Defaultwert.

In den meisten Fällen ist CODEPAGE identisch mit BINARY. Die einzigen Unterschiede bestehen für Dänisch, Finnisch, Deutsch, Norwegisch und Schwedisch in einer EBCDIC-Umgebung.


Nach oben

x
Referenz: Verwendungshinweise für SET COLLATION

Regeln für Sortierung und Aggregation



Beispiel: Binäre und von Groß- und Kleinschreibung unabhängige Kollationsreihenfolge für die Sortierung verwenden

Die folgende Anfrage erstellt eine FOCUS-Datenquelle namens COLLATE, die ein paar Datensätze mit Produktnamen hat, die sich nur durch die Groß-/Kleinschreibung unterscheiden:

CREATE FILE COLLATE                                                
-RUN                                                               
MODIFY FILE COLLATE                                                
FIXFORM PROD_NUM/C4 PRODNAME/C30 QTY_IN_STOCK/C7 PRICE/C12 COST/C12
CHECK OFF                                                          
DATA                                                               
10042 Hd VCR LCD Menu               43068      179.00      129.00  
10052 HD VCR LCD Menu               43068      179.00      129.00  
1006Combo Player - 4 HD VCR + DVD   13527      399.00      289.00  
1007Combo Player - 4 Hd VCR + DVD   13527      399.00      289.00  
1008DVD Upgrade Unit for Cent. VCR    199      199.00      139.00  
1010750SL Digital Camcorder 300 X   10758      999.00      750.00  
1012650DL Digital Camcorder 150 X    2972      899.00      710.00  
1014340SX Digital Camera 65K P        990      249.00      199.00  
1015340SX digital Camera 65K P        990      249.00      199.00
1016330DX Digital Camera 1024K P    12707      279.00      199.00
1018250 8MM Camcorder 40 X          60073      399.00      320.00
1019250 8mm Camcorder 40 X          60073      399.00      320.00
1020150 8MM Camcorder 20 X           5961      319.00      240.00
1022120 VHS-C Camcorder 40 X         2300      399.00      259.00
1024110 VHS-C Camcorder 20 X         4000      349.00      249.00
1026AR2 35mm Camera 8 X             12444      129.00       95.00
1029AR2 35MM Camera 8 X             11499      109.00       79.00
1028AR3 35MM Camera 10 X            11499      109.00       79.00
1030QX Portable CD Player           22000      169.00       99.00
1032R5 Micro Digital Tape Recorder   1990       89.00       69.00
1034ZT Digital PDA - Commercial     21000      499.00      349.00
1036ZC Digital PDA - Standard       33000      299.00      249.00
END

Die folgende Anfrage druckt die Werte von PRODNAME in der Reihenfolge, in der sie im Eingabestream gefunden werden:

TABLE FILE COLLATE
PRINT PROD_NUM PRODNAME
END

In der Ausgabe unterscheiden sich die Zeilen mit den Produktnummern 1004 und 1005 nur durch die Groß-/Kleinschreibung des Buchstabens d in HD. Der Datensatz mit dem kleingeschriebenen d kommt vor dem Datensatz mit dem großgeschriebenen D. Die Zeilen mit den Datensatznummern 1006 und 1007 unterscheiden sich auch nur in der Groß-/Kleinschreibung des Buchstabens d in HD. In diesem Fall befindet sich der Datensatz mit dem großgeschriebenen D vor dem Datensatz mit dem kleingeschriebenen d:

Product  Product                       
Number:  Name:                         
-------  -------                       
1004     2 Hd VCR LCD Menu             
1005     2 HD VCR LCD Menu             
1006     Combo Player - 4 HD VCR + DVD 
1007     Combo Player - 4 Hd VCR + DVD 
1008     DVD Upgrade Unit for Cent. VCR
1010     750SL Digital Camcorder 300 X 
1012     650DL Digital Camcorder 150 X 
1014     340SX Digital Camera 65K P    
1015     340SX digital Camera 65K P    
1016     330DX Digital Camera 1024K P  
1018     250 8MM Camcorder 40 X        
1019     250 8mm Camcorder 40 X        
1020     150 8MM Camcorder 20 X        
1022     120 VHS-C Camcorder 40 X      
1024     110 VHS-C Camcorder 20 X      
1026     AR2 35mm Camera 8 X           
1029     AR2 35MM Camera 8 X           
1028     AR3 35MM Camera 10 X          
1030     QX Portable CD Player         
1032     R5 Micro Digital Tape Recorder
1034     ZT Digital PDA - Commercial   
1036     ZC Digital PDA - Standard

Die nächste Anfrage sortiert die Ausgabe in BINARY-Reihenfolge. Die Einstellung COLLATION = BINARY ist wirksam:

TABLE FILE COLLATE      
PRINT PROD_NUM          
BY PRODNAME             
END

In einer EBCDIC-Umgebung werden die Datensätze mit den kleingeschriebenen Buchstaben vor den Datensätzen mit den großgeschriebenen Buchstaben sortiert, so dass die Zeile mit der Produktnummer 1007 vor der Zeile mit der Produktnummer 1006 sortiert wird:

Product                         Product
Name:                           Number:
-------                         -------
AR2 35mm Camera 8 X             1026   
AR2 35MM Camera 8 X             1029   
AR3 35MM Camera 10 X            1028   
Combo Player - 4 Hd VCR + DVD   1007   
Combo Player - 4 HD VCR + DVD   1006   
DVD Upgrade Unit for Cent. VCR  1008   
QX Portable CD Player           1030   
R5 Micro Digital Tape Recorder  1032   
ZC Digital PDA - Standard       1036   
ZT Digital PDA - Commercial     1034   
110 VHS-C Camcorder 20 X        1024   
120 VHS-C Camcorder 40 X        1022   
150 8MM Camcorder 20 X          1020   
2 Hd VCR LCD Menu               1004   
2 HD VCR LCD Menu               1005   
250 8mm Camcorder 40 X          1019   
250 8MM Camcorder 40 X          1018   
330DX Digital Camera 1024K P    1016   
340SX digital Camera 65K P      1015   
340SX Digital Camera 65K P      1014   
650DL Digital Camcorder 150 X   1012   
750SL Digital Camcorder 300 X   1010

In einer ASCII-Umgebung werden die Datensätze mit den großgeschriebenen Buchstaben vor den Datensätzen mit den kleingeschriebenen Buchstaben sortiert, so dass die Zeile mit der Produktnummer 1005 vor der Zeile mit der Produktnummer 1004 sortiert wird:

Product                         Product 
Name:                           Number:
-------                         ------- 
110 VHS-C Camcorder 20 X        1024   
120 VHS-C Camcorder 40 X        1022   
150 8MM Camcorder 20 X          1020   
2 HD VCR LCD Menu               1005   
2 Hd VCR LCD Menu               1004   
250 8MM Camcorder 40 X          1018   
250 8mm Camcorder 40 X          1019   
330DX Digital Camera 1024K P    1016   
340SX Digital Camera 65K P      1014   
340SX digital Camera 65K P      1015   
650DL Digital Camcorder 150 X   1012   
750SL Digital Camcorder 300 X   1010   
AR2 35MM Camera 8 X             1029   
AR2 35mm Camera 8 X             1026   
AR3 35MM Camera 10 X            1028   
Combo Player - 4 HD VCR + DVD   1006   
Combo Player - 4 Hd VCR + DVD   1007   
DVD Upgrade Unit for Cent. VCR  1008   
QX Portable CD Player           1030   
R5 Micro Digital Tape Recorder  1032   
ZC Digital PDA - Standard       1036   
ZT Digital PDA - Commercial     1034

Wenn COLLATION auf SRV_CI eingestellt ist und eine Sortierung mit dem Feld PRODNAME durchgeführt wird, haben die groß- und kleingeschriebenen Buchstaben denselben Wert, so dass die Zeile nur einmal für mehrere Datensatznummern angezeigt wird. Beispielsweise werden die Zeilen mit den Produktnummern 1004 und 1005 mit demselben PRODNAME-Wert angezeigt und der Sortierfeldwert für die Anzeige ist der erste im Eingabestream.

Nachfolgend sehen Sie die Ausgabe in einer EBCDIC-Umgebung:

Product                         Product
Name:                           Number:
-------                         -------
AR2 35mm Camera 8 X             1026   
                                1029   
AR3 35MM Camera 10 X            1028   
Combo Player - 4 HD VCR + DVD   1006   
                                1007   
DVD Upgrade Unit for Cent. VCR  1008   
QX Portable CD Player           1030   
R5 Micro Digital Tape Recorder  1032   
ZC Digital PDA - Standard       1036   
ZT Digital PDA - Commercial     1034   
110 VHS-C Camcorder 20 X        1024   
120 VHS-C Camcorder 40 X        1022   
150 8MM Camcorder 20 X          1020   
2 Hd VCR LCD Menu               1004   
                                1005   
250 8MM Camcorder 40 X          1018   
250 8MM Camcorder 40 X          1019
330DX Digital Camera 1024K P    1016
340SX Digital Camera 65K P      1014
                                1015
650DL Digital Camcorder 150 X   1012
750SL Digital Camcorder 300 X   1010

Nachfolgend sehen Sie die Ausgabe in einer ASCII-Umgebung:

Product                         Product   
Name:                           Number:   
-------                         -------    
110 VHS-C Camcorder 20 X        1024   
120 VHS-C Camcorder 40 X        1022   
150 8MM Camcorder 20 X          1020   
2 Hd VCR LCD Menu               1004   
                                1005   
250 8MM Camcorder 40 X          1018   
                                1019   
330DX Digital Camera 1024K P    1016   
340SX Digital Camera 65K P      1014   
                                1015   
650DL Digital Camcorder 150 X   1012   
750SL Digital Camcorder 300 X   1010   
AR2 35mm Camera 8 X             1026   
                                1029   
AR3 35MM Camera 10 X            1028   
Combo Player - 4 HD VCR + DVD   1006   
                                1007   
DVD Upgrade Unit for Cent. VCR  1008   
QX Portable CD Player           1030   
R5 Micro Digital Tape Recorder  1032   
ZC Digital PDA - Standard       1036   
ZT Digital PDA - Commercial     1034


Beispiel: Binäre und von Groß- und Kleinschreibung unabhängige Kollationsreihenfolge für die Auswahl verwenden

Die folgende Anfrage mit der Datenquelle COLLATE wählt Datensätze aus, in denen der PRODNAME die Zeichen 'HD' enthält:

TABLE FILE COLLATE          
PRINT PROD_NUM PRODNAME     
WHERE PRODNAME CONTAINS 'HD'
END

Wenn COLLATION auf BINARY eingestellt ist, werden nur die Datensätze mit einer genauen Übereinstimmung (HD ist großgeschrieben) ausgewählt. Die Ausgabe ist:

Product  Product                      
Number:  Name:                        
-------  -------                      
1005     2 HD VCR LCD Menu            
1006     Combo Player - 4 HD VCR + DVD

Wenn Sie dieselbe Anfrage ausführen, aber den COLLATION-Parameter auf SRV_CI einstellen, werden alle Datensätze mit einer beliebigen Kombination von groß- und kleingeschriebenen Werten für H und D ausgewählt. Die Zeilen werden in der Reihenfolge angezeigt, in der Sie in der Datenquelle vorkommen:

Product  Product                      
Number:  Name:                        
-------  -------                      
1004     2 Hd VCR LCD Menu            
1005     2 HD VCR LCD Menu            
1006     Combo Player - 4 HD VCR + DVD
1007     Combo Player - 4 Hd VCR + DVD

WebFOCUS