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:
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:
Operador |
Descripción |
|---|---|
> |
Mayor que |
>= |
Mayor o igual que |
< |
Menor que |
<= |
Menor o igual que |
= |
Igual que |
|
Distinto de |
<> |
Mayor o menor que |
expr { > | >= | < | <= | = | != | ^= | <> } expr
expr puede ser cualquier expresión.
5 > 3 es true, 4 != 5 es true, 6 >= 9 es false.
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:
Operador |
Descripción |
|---|---|
> |
Mayor que |
>= |
Mayor o igual que |
< |
Menor que |
<= |
Menor o igual que |
= |
Igual que |
|
Distinto de |
<> |
Mayor o menor que |
|
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. |
expr
{ = | != | ^= | <> | > | < | >= | <= }
{ ANY | SOME | ALL }
({ expression_list | subquery })
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.
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.
expr [ NOT ] BETWEEN expr AND expr
7 NOT BETWEEN 10 AND 15 es true.
Las conjunciones comparan una expresión sencilla con dos condiciones.
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. |
expr operator condition1 { AND | OR } condition2
5 < 7 AND 5 > 3 es true; 5 < 3 OR 10 < 15 es true.
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.
NOT {BETWEEN | IN | LIKE | NULL }
5 IS NOT NULL es true; 5 NOT IN (5, 10, 15) es false.
El operadorIS prueba condiciones especiales como valores nulos, infinitos y valores que no son números.
| 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. |
expr IS [ NOT ] NULL
13 IS NOT NULL es true.
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.
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:
| 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. |
char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 ) char2 [ ESCAPE esc_char ]
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:
Un carácter de subrayado (_) coincide exactamente con un carácter (frente a un byte en un juego de caracteres multibyte) en el valor.
Un símbolo de porcentaje (%) puede coincidir con ningún carácter o con varios (frente a los bytes de un juego de caracteres multibyte) en el valor. Un '%' no puede coincidir con un valor nulo.
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 @.
'Ducks' LIKE 'Duck_' y 'Ducky' LIKE 'Duck_' son true.
'Duckling' LIKE 'Duck_' es false.
'Duckling' LIKE 'Duck%' es true.
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).
REGEXP_LIKE(source_char, pattern
[, match_parameter ]
)
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:
c: Coincidencia sensible a mayúsculas/minúsculas.
i: Coincidencia no sensible a mayúsculas/minúsculas.
m: Considera la cadena de origen como varias líneas. REGEXP_LIKE interpreta ^ y $ como el inicio y el fin, respectivamente, de cualquier línea de cualquier ubicación de la cadena de origen en lugar de considerarla sólo como principio o fin de la cadena de origen completa. Por defecto, REGEXP_LIKE considera la cadena de origen como una línea única.
n: El carácter de nueva línea se incluye entre los caracteres con los que coincide el punto (el carácter comodín). Por defecto, no lo está.
x: Ignora caracteres de espacio en blanco.
REGEXP_LIKE (first_name, '^Ste(v|ph)en$') coincide con Steven y Stephen, pero no con Stevens o Esteven, en first_name.
Copyright © 2003, 2007, Oracle. Todos los Derechos Reservados.