Cómo controlar la secuencia de intercalado

Cómo:

Referencia:

El intercalado se define como un conjunto de reglas que se aplican a la ordenación y correspondencia de todos los elementos de idioma que implican la comparación de dos valores. Esta característica afecta a una amplia variedad de elementos. Entre estas características se encuentran la clasificación, la agregación, las condiciones WHERE y las hojas de estilos. Los elementos están clasificados por defecto en base a sus valores binarios. Las propiedades de COLLATION SRV_CI y SRV_CS, intercalado que distingue, o no, las mayúsculas de las minúsculas, implementan un intercalado basado en la propiedad LANGUAGE. El intercalado que no distingue las mayúsculas de las minúsculas indica que todas las cláusulas y clasificaciones WHERE ignoran el uso de mayúsculas y minúsculas en los elementos que se está comparando. COLLATION es una propiedad de nivel de sesión (no admitido en frases ON TABLE; debe establecerse en el perfil de servidor edasprof).

La propiedad de intercalado sólo se aplica a los valores alfanuméricos.


Principio de página

x
Sintaxis: Cómo Establecer una secuencia de intercalado binario o que no distinga mayúsculas de minúsculas

Añada el siguiente comando al perfil de servidor edasprof.prf:

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

donde:

BINARY

Basa la secuencia de intercalado en valores binarios.

SRV_CI

Basa la secuencia de intercalado en la propiedad LANGUAGE y no distingue las mayúsculas de las minúsculas.

SRV_CS

Basa la secuencia de intercalado en la propiedad LANGUAGE y distingue las mayúsculas de las minúsculas.

CODEPAGE

Basa la secuencia de intercalado en la página de código que está en vigor y distingue las mayúsculas de las minúsculas. CODEPAGE es el valor predeterminado.

En la mayoría de los casos, CODEPAGE es lo mismo que BINARY. La única diferencia se encuentra en el danés, finlandés, alemán, noruego y sueco, en un entorno EBCDIC.


Principio de página

x
Referencia: Notas de uso de SET COLLATION

Reglas de clasificación y agregación



Ejemplo: Cómo usar la secuencia de intercalado binaria y que no distingue mayúsculas de minúsculas en una clasificación

La siguiente solicitud crea un origen de datos FOCUS, llamado COLLATE, que incluye algunos registros con nombres de producto que sólo se diferencian en una letra (mayúscula o minúscula):

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

La siguiente solicitud imprime los valores de PRODNAME según el orden en que aparecen en el flujo de entrada:

TABLE FILE COLLATE
PRINT PROD_NUM PRODNAME
END

En la solicitud, la única diferencia entre las filas con los números de producto 1004 y 1005 es la letra d en HD. El registro con la d minúscula aparece antes que el registro con la letra D mayúscula. Las filas con los números de registro 1006 y 1007 también se diferencian por la presencia de la letra d en HD. En este caso, el registro con la D mayúscula también precede al registro con la d minúscula:

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

La siguiente solicitud clasifica la salida según el orden BINARY. La propiedad COLLATION = BINARY está en vigor:

TABLE FILE COLLATE      
PRINT PROD_NUM          
BY PRODNAME             
END

En un entorno EBCDIC, los registros en minúscula clasifican delante de los registros en mayúscula; la fila con el número de producto 1007 clasifica delante de la fila de número de producto 1006:

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

En un entorno ASCII, los registros en mayúscula clasifican delante de los registros en minúscula; la fila con el número de producto 1005 clasifica delante de la fila de número de producto 1004:

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

Cuando COLLATION se ha establecido en SRV_CI y hay una clasificación en el campo PRODNAME, las mayúsculas y minúsculas tienen el mismo valor; las filas solo aparecen una vez para varios números de registros. Por ejemplo, las filas con los números de producto 1004 y 1005 aparecen con el mismo valor de PRODNAME, mientras que el valor de campo de clasificación de la visualización es el primero de la secuencia de entrada.

Salida en un entorno EBCDIC:

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

Salida en un entorno ASCII:

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


Ejemplo: Cómo usar la secuencia de intercalación binaria y que no distingue mayúsculas de minúsculas en una selección

La siguiente solicitud, basada en el origen de datos COLLATE, selecciona registros en los que PRODNAME contiene los caracteres 'HD':

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

Cuando COLLATION se ha establecido en BINARY, sólo se seleccionan los registros que coincidan exactamente en el uso de las mayúsculas y minúsculas (en este caso, HD en mayúscula). La salida es:

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

Si ejecuta la misma solicitud pero cambiando el parámetro COLLATION a SRV_CI, se seleccionan todos los registros con cualquier combinación de valores en mayúscula y minúscula para H y D. Las filas aparecen según el orden en que aparecían en el origen de datos:

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