DISTINCT VALUES

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 6.5 (Modificado)


DISTINCT VALUES (Campo; Array)

ParámetroTipoDescripción
CampoCampo o subcampoCampo o subcampo indexable a utilizar para
datos
ArrayArrayArray a recibir los datos del campo

Descripción

El comando DISTINCT VALUES crea y llena el array array con valores distintos (únicos) del campo campo para la selección actual de la tabla a la cual pertenece el campo o subcampo.

Puede pasar a DISTINCT VALUES todo tipo de campo o subcampo indexable, es decir, cuyo tipo soporte indexación sin que esté indexado necesariamente.

Sin embargo, la ejecución de este comando con campos no indexados será más lenta. También observe que en este caso, el comando pierde el registro actual.

DISTINCT VALUES analiza y extrae los valores no repetidos en los registros seleccionados únicamente

Nota: Cuando el comando DISTINCT VALUES se llama durante una transacción (que no ha terminado aún), el comando tiene en cuenta los registros creados durante esa transacción.

Si crea el array antes del llamado, DISTINCT VALUES espera un array de tipo compatible con el campo o subcampo pasado. De lo contrario, en modo interpretado, DISTINCT VALUES creará un array del tipo apropiado. Sin embargo, si el campo o subcampo es de tipo Hora, el comando espera o crea un array de tipo Entero largo.

Después del llamado, el tamaño del array es igual al número de valores distintos encontrados en la selección. El comando no cambia la selección actual ni el registro actual. El comando DISTINCT VALUES utiliza el índice del campo, de manera que los elementos en array se devuelven ordenados en orden ascendente. Si este es el orden que usted necesita, no es necesario llamar a SORT ARRAY después de utilizar DISTINCT VALUES.

Advertencia: DISTINCT VALUES puede crear array grandes, dependiendo del tamaño de la selección y del número de valores diferentes en los registros. Los arrays residen en memoria, por lo tanto es buena idea probar el resultado después de la ejecución del comando. Para hacer esto, pruebe el tamaño del array resultante o cubra la llamada al comando, utilizando un método de proyecto ON ERR CALL.

4D Server: este comando es optimizado por 4D Server. El array se crea y los valores se calculan en el equipo servidor; luego el array se envía, en su totalidad, al cliente.

Ejemplos

1. El siguiente ejemplo crea una lista de ciudades a partir de la selección actual e indica al usuario el número de ciudades en las cuales la empresa tiene almacenes:

   ALL RECORDS([Almacenes]) ` Crear una selección de registros
   DISTINCT VALUES([Almacenes]Ciudad;asCiudades) 
   ALERT("La empresa tiene almacenes en " +String(Size of array(asCiudades))+" ciudades.")

2. El siguiente ejemplo devuelve en asPalabrasClaves todas las palabras claves que están relacionadas (utilizando una subtabla) a los documentos 4D Write almacenados en la tabla [Documentación] y cuyo tema es "Economía":

   QUERY ([Documentacion];[Documentacion]Tema="Economia")
   DISTINCT VALUES([Documentacion]PalabrasClaves'Palabra;asPalabrasClaves)

Después de construir este array, puede reutilizarlo para ubicar rápidamente todos los documentos asociados con la palabra clave seleccionada:

   QUERY ([Documentacion];[Documentacion]PalabrasClaves'Palabra=asPalabrasClaves{asPalabrasClaves})
   SELECTION TO ARRAY ([Documentacion]Tema;asTemas)
      ` ...

Ver también

ON ERR CALL, SELECTION RANGE TO ARRAY, SELECTION TO ARRAY.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente