Condiciones

Una condición especifica una combinación de una o más expresiones y operadores lógicos (booleanos). La sintaxis de expresión de OLAP tiene los siguientes tipos de condiciones:

Condiciones de Comparación Sencilla

Las condiciones de comparación comparan una expresión con otra. El resultado de dicha comparación pueden ser TRUE, FALSE o NULL.

Puede utilizar los siguientes operadores de comparación:

Operadores de Comparación Sencilla
Operador
Descripción
>
Mayor que
>=
Mayor o igual que
<
Menor que
<=
Menor o igual que
=
Igual que

!=
^=

Distinto de
<>
Mayor o menor que

Sintaxis

expr { > | >= | < | <= | = | != | ^= | <> } expr 

Argumentos

expr puede ser cualquier expresión.

Ejemplos

5 > 3 es true, 4 != 5 es true, 6 >= 9 es false.

Condiciones de Comparación de Grupo

Una condición de comparación de grupo especifica una comparación con cualquiera o todos los miembros en una lista o subconsulta.

Puede utilizar los siguientes operadores de comparación:

Operadores de Comparación de Grupo
Operador
Descripción
>
Mayor que
>=
Mayor o igual que
<
Menor que
<=
Menor o igual que
=
Igual que

!=
^=

Distinto de
<>
Mayor o menor que

ANY
SOME

Devuelve True si coinciden uno o más valores de la lista; devuelve False si no coincide ningún valor.
ALL
Devuelve True si coinciden todos los valores de la lista; devuelve False si no coincide ningún valor.

Sintaxis

expr
     { = | != | ^= | <> | > | < | >= | <= }
     { ANY | SOME | ALL }
     ({ expression_list | subquery })


Ejemplos

5 >= ALL (5, 10, 15) es true, 5 <> ANY (5, 10, 15) es true.

(color, tamaño) = SOME (('RED', 'L'), ('GREEN', 'M')) devuelve true para elementos rojos grandes y elementos verdes medianos.

Condiciones de Rango

El operador BETWEEN prueba si un valor está en un rango específico de valores. Devuelve true si el valor que se está probando es mayor o igual que un valor bajo y menor o igual que un valor alto.

Sintaxis

expr [ NOT ] BETWEEN expr AND expr

Ejemplo

7 NOT BETWEEN 10 AND 15 es true.

Condiciones Múltiples

Las conjunciones comparan una expresión sencilla con dos condiciones.

Conjunciones
Operador
Descripción
AND
Devuelve TRUE si ambas condiciones de componente son TRUE. Devuelve FALSE si alguna es FALSE. De lo contrario, devuelve UNKNOWN.
OR
Devuelve TRUE si cualquier condición de componente es TRUE. Devuelve FALSE si ambas son FALSE. De lo contrario, devuelve UNKNOWN.

Sintaxis

expr operator condition1 { AND | OR } condition2 

Ejemplo

5 < 7 AND 5 > 3 es true; 5 < 3 OR 10 < 15 es true.

Negación

El operador NOT invierte el significado de una condición. Devuelve TRUE si la condición es FALSE. Devuelve FALSE si es TRUE. Si es UNKNOWN, permanece como UNKNOWN.

Sintaxis

NOT {BETWEEN | IN | LIKE | NULL }

Ejemplo

5 IS NOT NULL es true; 5 NOT IN (5, 10, 15) es false.

Condiciones Especiales

El operadorIS prueba condiciones especiales como valores nulos, infinitos y valores que no son números.

Operadores de Condiciones Especiales
Operador Descripción
IS INFINITE Devuelve TRUE si la expresión es un valor infinito o FALSE si es otro valor.
IS NAN Devuelve TRUE si la expresión no es un número o FALSE si es otro valor.
IS NULL Devuelve TRUE si la expresión es un valor nulo o FALSE si es otro valor.

Sintaxis

expr IS [ NOT ] NULL

Ejemplo

13 IS NOT NULL es true.

Condiciones de Patrón de Coincidencia

Las condiciones de patrón de coincidencia comparan los datos por carácter. Existen dos grupos de operadores en esta categoría: LIKE y REGEXP_LIKE.

Operadores LIKE

Los operadoresLIKE especifican una prueba que implica un patrón de coincidencia. Mientras que el operador de igualdad (=) hace coincidir exactamente un valor de carácter con otro, los operadores LIKE pueden hacer coincidir patrones definidos mediante caracteres especiales de patrón de coincidencia ("comodines").

Puede seleccionar los siguientes operadores LIKE:

Operadores de Patrón de Coincidencia LIKE
Operador Descripción
LIKE

Utiliza caracteres del juego de caracteres de entrada.

LIKEC Utiliza caracteres Unicode completos. Considera un carácter Unicode complementario como dos caracteres.
LIKE2 Utiliza puntos de código UCS2. Considera un carácter Unicode complementario como un carácter.
LIKE4 Utiliza puntos de código UCS4. Considera un carácter compuesto como un carácter.

Sintaxis

char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 )
  char2 [ ESCAPE esc_char ]

Argumentos

char1 es una expresión de texto para el valor de búsqueda.

char2 es una expresión de texto para el patrón. El patrón puede contener los siguientes caracteres comodín:

esc_char es una expresión de texto, normalmente un literal, que es de un carácter long. Este carácter de escape identifica un carácter de subrayado o un símbolo de porcentaje en el patrón como caracteres literales en lugar de caracteres comodín. También puede buscar el carácter de escape repitiéndolo. Por ejemplo, si @ es el carácter de escape, puede utilizar @% para buscar % y @@ para buscar @.

Ejemplos

'Ducks' LIKE 'Duck_' y 'Ducky' LIKE 'Duck_' son true.

'Duckling' LIKE 'Duck_' es false.

'Duckling' LIKE 'Duck%' es true.

Operador REGEXP_LIKE

REGEXP_LIKE realiza una coincidencia de expresiones normales en lugar del patrón de coincidencia realizado por LIKE. Este operador evalúa las cadenas utilizando caracteres como se define en el juego de caracteres de entrada.

Las expresiones normales de Oracle cumplen con el estándar de expresiones normales IEEE Portable Operating System Interface (POSIX) y con las Instrucciones de Expresiones Normales de Unicode del Consorcio Unicode. Para obtener más información sobre las expresiones normales, consulte Oracle Database SQL Reference (Referencia SQL de la Base de Datos Oracle).

Sintaxis

REGEXP_LIKE(source_char, pattern
            [, match_parameter ]
           )

Argumentos

source_char es la expresión que se va a buscar. Puede ser de cualquier tipo de dato CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB o NCLOB.

pattern es la expresión que se va a buscar. Normalmente es un literal de texto y puede ser de cualquier tipo de dato CHAR, VARCHAR2, NCHAR o NVARCHAR2. Puede contener hasta 512 bytes.

match_parameter es un literal de texto que permite cambiar el comportamiento de coincidencia por defecto de la función. Puede especificar uno o más de los siguientes valores:

Ejemplo

REGEXP_LIKE (first_name, '^Ste(v|ph)en$') coincide con Steven y Stephen, pero no con Stevens o Esteven, en first_name.