Compartir a través de


Comparaciones de varios valores (ARRAY) de la sintaxis SQL del motor de búsqueda Enterprise Search

Compara columnas que tiene varios valores (columnas de múltiples valores) almacenados en el contenido.

…WHERE <column> <comp_op> [<quantifier>] <comparison_list>

Comentarios

Enterprise Search devuelve un error si la referencia de columna no es una columna de múltiples valores. El tipo de datos de la columna debe ser compatible con los elementos de la lista de comparación. Si es necesario, puede convertir la referencia de columna a otro tipo de datos.

Se puede usar cualquiera de los operadores de comparación habituales en la cláusula WHERE. En una comparación de varios valores, los operadores de comparación tienen un significado ligeramente distinto, que dependerá de si se usa un cuantificador y de cuál es el cuantificador que se usa. Por este motivo, se describen las funciones de los operadores de comparación en las siguientes tablas de cuantificadores específicos.

Las lista de comparación especifica una matriz de valores literal que se comparan con la columna de múltiples valores. A continuación se muestra la sintaxis para la lista de comparación:

ARRAY [<literal>,<literal>]

Nota

Tenga en cuenta la sintaxis de la lista de comparación. Debe usar corchetes alrededor del grupo de literals que componen la lista de comparación. No use corchetes alrededor de los elementos individuales de la lista de comparación. Por ejemplo, ARRAY [1,2,3] es sintaxis correcta, pero ARRAY [1[,2][,3]] no lo es.

El método que se usa para determinar si la comparación de múltiples valores devuelve TRUE o FALSE se especifica mediante el cuantificador opcional. Las siguientes secciones describen cada uno de los cuantificadores y cómo funciona el operador de comparación cuando se usa dicho cuantificador.

No se ha especificado ningún cuantificador

Si no se especifica ningún cuantificador, los elementos del lado izquierdo (I) de la comparación se comparan con el elemento situado en la misma posición del lado derecho (D). La comparación comienza con el primer elemento de las matrices y continúa hasta el último elemento. Si todos los elementos del lado I son equivalentes a los elementos correspondientes del lado D, entonces se usa el número de elementos de matriz para determinar cuál de las matrices es mayor.

La siguiente tabla muestra el funcionamiento de los operadores de comparación cuando no se especifica ningún cuantificador, y proporciona una breve descripción de cada uno.

Operador Descripción

=

"Igual a" devuelve TRUE cuando cada elemento de I tiene el mismo valor que el correspondiente elemento de D, y ambas matrices tienen el mismo número de elementos.

!= o <>

"No igual a" devuelve TRUE cuando uno o varios elementos de I tienen valores distintos a los correspondientes elementos de D, o cunado las matrices de I y D no tienen el mismo número de elementos.

>

"Mayor que" devuelve TRUE cuando el valor de cada elemento de I es mayor que el valor del correspondiente elemento de D. Si todos los valores de los elementos de I coinciden exactamente con los correspondientes elementos de D, y la matriz D tiene elementos sin un elemento de I correspondiente, "mayor que" devuelve TRUE.

>=

"Mayor o igual que" devuelve TRUE cuando el valor de cada elemento de I es mayor o igual que el valor del correspondiente elemento de D.

<

"Menor que" devuelve TRUE cuando el valor de cada elemento de I es menor que el valor del correspondiente elemento de D. "Menor que" también devuelve TRUE si el lado I tiene menos elementos que el lado D.

<=

"Menor o igual que" devuelve TRUE cuando el valor de cada elemento de I es menor o igual que el valor del correspondiente elemento de D.

Cuantificador All

El cuantificador ALL especifica que cada elemento en el lado izquierdo (I) se compara con todos los elementos del lado derecho (D). Para devolver TRUE, la comparación debe ser verdadera para todos los elementos del lado I cuando se comparan con todos los elementos del lado D. El número de elementos de las matrices de los lados I y D no afecta al resultado.

La tabla siguiente muestra cómo funciona cada uno de los operadores de comparación con el cuantificador ALL.

Operador Descripción

=

"Igual a" devuelve TRUE cuando cada uno de los valores de los elementos de I es el mismo que todos los valores de los elementos de D.

!= o <>

"No igual a" devuelve TRUE cuando uno o varios valores de los elementos de I son distintos de cualquiera de los valores de los elementos de D.

>

"Mayor que" devuelve TRUE cuando todos los valores de los elementos de I son mayores que todos los valores de los elementos de D.

>=

"Mayor o igual que" devuelve TRUE cuando todos los valores de los elementos de I son mayores o iguales que todos los valores de los elementos de D.

<

"Menor que" devuelve TRUE cuando todos los valores de los elementos de I son menores que todos los valores de los elementos de D.

Cuantificador SOME (o ANY)

Los cuantificadores SOME y ANY se pueden usar de forma indistinta. El cuantificador SOME especifica que cada elemento del lado izquierdo (I) se compara con todos los elementos del lado derecho (D). Para devolver TRUE, la comparación debe ser verdadera para al menos uno de los elementos del lado I cuando se compara con todos los elementos del lado D. El número de elementos de las matrices de los lados I y D no afecta al resultado.

En la tabla siguiente se muestra cómo funciona cada operador de comparación con el cuantificador SOME.

Operador Descripción

=

"Igual a" devuelve TRUE cuando al menos uno de los valores de los elementos de I es igual a cualquiera de los valores de los elementos de D.

!= o <>

"No igual a" devuelve TRUE cuando ninguno de los valores de los elementos de I es igual a cualquiera de los valores de los elementos de D.

>

"Mayor que" devuelve TRUE cuando al menos uno de los valores de los elementos de I es mayor que todos los valores de los elementos de D.

>=

"Mayor o igual que" devuelve TRUE cuando al menos uno de los valores de los elementos de I es mayor o igual que todos los valores de los elementos de D.

<

"Menor que" devuelve TRUE cuando al menos uno de los valores de los elementos de I es menor que todos los valores de los elementos de D.

Ejemplos

Las siguientes comparaciones todas devuelven TRUE. Recuerde que en el uso real, la sintaxis de la consulta de búsqueda requiere que el lado izquierdo sea una propiedad y no un valor literal.

ARRAY [1,2] > ARRAY [1,1]
ARRAY [1,2] > ARRAY [1,1,2]
ARRAY [1,2] < ARRAY [1,2,3]
ARRAY [1,2] = SOME ARRAY [1,12,27,35,2]
ARRAY [1,1] != ALL ARRAY [1,2]
ARRAY [1,20,21,22] < SOME ARRAY [0,40]
ARRAY [1,20,21,22] < ANY ARRAY [0,40]

Vea también

Otros recursos

Predicados sin texto completo de la sintaxis SQL del motor de búsqueda Enterprise Search
Comparación de valores literales en la sintaxis SQL del motor de búsqueda Enterprise Search