Está en la página 1de 8

[Año]

DOCUMENTACIÓN – CONDICIONES EN LOS


FILTROS

Curso – ABAP Open SQL


LOGALISAP
1

Contents
1. Sintaxis .................................................................................................................................................................2
2. Efecto....................................................................................................................................................................2
3. Operadores relacionales binarios.......................................................................................................................3
3.1. Sintaxis .........................................................................................................................................................3
3.2. Efecto ...........................................................................................................................................................3
3.3. Tabla de los operadores binarios...............................................................................................................3
4. BETWEEN .............................................................................................................................................................4
4.1. Sintaxis .........................................................................................................................................................4
4.2. Efecto ...........................................................................................................................................................4
5. LIKE .......................................................................................................................................................................4
5.1. Sintaxis .........................................................................................................................................................4
5.2. Efecto ...........................................................................................................................................................4
5.3. Notas............................................................................................................................................................5
6. IN...........................................................................................................................................................................5
6.1. Sintaxis .........................................................................................................................................................5
6.2. Efecto ...........................................................................................................................................................6
7. IN seltab ...............................................................................................................................................................6
7.1. Sintaxis .........................................................................................................................................................6
7.2. Efecto ...........................................................................................................................................................6
7.3. Opciones en tablas de rangos ....................................................................................................................7
8. NULL .....................................................................................................................................................................7
8.1. Sintaxis .........................................................................................................................................................7
8.2. Efecto ...........................................................................................................................................................7

ABAP Open SQL logalisap.com


2

1. Sintaxis

... {{col1 {= | EQ | <> | NE |> | GT | <| LT |> = | GE | <= | LE}


{{Dobj}
| {Col2}
| {[ALL | ANY | ALGUNA] subconsulta}}}
| {col [NOT] ENTRE dobj1 AND dobj2}
| {col [NOT] LIKE dobj [ESCAPE esc]}
| {col [NOT] IN (dobj1, dobj2 ...)}
| {col [NOT] IN seltab}
| {col IS [NOT] NULL}
| {(Cond_syntax)}
| {[NOT] EXISTS subquery}
| {col [NOT] IN subquery}} ...

2. Efecto

Las expresiones lógicas “sql_cond” en la condición WHERE son similares a


las expresiones lógicas generales de las instrucciones de control. Consisten
en expresiones lógicas con operadores relacionales. Las expresiones lógicas
de una condición WHERE también se pueden especificar dinámicamente.
También se pueden usar subconsultas (subquerys). Las expresiones
relacionales múltiples de una condición WHERE pueden hacerse en una
expresión con AND u OR. Una expresión lógica puede ser negada usando
NOT.

Cada expresión relacional individual de la condición WHERE debe contener


siempre al menos una columna “col” de una de las tablas de la base de
datos o vistas listadas después de FROM como un operando. Los mismos
nombres de columna (comp, dbtab ~ comp, tabalias ~ comp) se pueden
especificar para “col” como están en la lista de columnas individuales
especificadas después de SELECT. No se pueden especificar expresiones
agregadas ni columnas de tipo STRING, RAWSTRING, LCHR o LRAW.

ABAP Open SQL logalisap.com


3

3. Operadores relacionales binarios

3.1. Sintaxis

... col1 operator {dobj}


| {col2}
| {[ALL|ANY|SOME] subquery} ...

3.2. Efecto

La expresión relacional compara el contenido de la columna col1 con


el contenido de uno de los siguientes operandos, de acuerdo con el
operador del operador relacional:

- Un objeto de datos ABAP “dobj”


- Otra columna col2 en una tabla de base de datos especificada
después de FROM. Aquí, col2 debe especificarse como
dbtab~comp o tab_alias~comp utilizando el selector de columnas.
- Una subconsulta

3.3. Tabla de los operadores binarios

Operador Significado
Verdadero, si el contenido de
=, EQ col1 es el mismo que el contenido
del segundo operando.
Verdadero, si el contenido de
<>, NE col1 no es el mismo que el
contenido del segundo operando.
Verdadero que si el contenido de
<, LT col1 es menor que el contenido
del segundo operando.
Verdadero, si el contenido de
>, GT col1 es mayor que el contenido
del segundo operando.

ABAP Open SQL logalisap.com


4

Verdadero, si el contenido de
<=, LE col1 es menor o igual que el
contenido del segundo operando.
Verdadero si el contenido de col1
>=, GE es mayor o igual que el contenido
del segundo operando.

4. BETWEEN

4.1. Sintaxis

... col [NOT] BETWEEN dobj1 AND dobj2 ...

4.2. Efecto

Esta expresión es verdadera si el contenido de la columna col (no) se


encuentra entre los valores de los objetos de datos dobj1 y dobj2 (límites
de intervalo cerrados).

5. LIKE

5.1. Sintaxis

... col [NOT] LIKE dobj [ESCAPE esc] ...

5.2. Efecto

Esta expresión es verdadera si el valor de la columna col se ajusta (no


encaja) al patrón en el objeto de datos “dobj”. No es posible
especificar un ID de columna para “dobj”. Los tipos de datos de la
columna col y el objeto de datos “dobj” deben ser del tipo carácter.

ABAP Open SQL logalisap.com


5

Los caracteres comodín se pueden utilizar para crear el patrón en


“dobj”, donde "%" representa cualquier cadena de caracteres,
incluso una vacía, y "_" representa cualquier carácter. Es sensible a
mayúsculas y minúsculas. Los espacios en blanco en “dobj” se
ignoran.

La opción ESCAPE se puede utilizar para definir un carácter de


escape. “esc” debe ser un objeto de datos de carácter plano de
longitud 1, cuyo contenido se utiliza como un carácter de escape. Un
carácter de escape sólo puede colocarse antes de un carácter
comodín o antes del propio carácter de escape. En este caso, éstos
pierden su significado especial. No se puede utilizar ESCAPE cuando
se leen tablas pool.

5.3. Notas

• El uso de los caracteres comodín "_" y "%" corresponde al estándar


de SQL. En otra parte de ABAP, los caracteres comodín "+" y "*" se
usan en expresiones relacionales similares, en particular cuando se
usan las tablas de selección.

• No utilice patrones que estén cerrados por caracteres comodín. La


semántica de búsquedas de este tipo depende del sistema de base
de datos que se utiliza y en general no produce el resultado deseado.

6. IN

6.1. Sintaxis

... col [NOT] IN (dobj1, dobj2 ... ) ...

ABAP Open SQL logalisap.com


6

6.2. Efecto

Esta expresión es verdadera si el valor de la columna “col” coincide


(no coincide) con el contenido del objeto de datos en la lista de
valores. La lista de valores se especifica como una lista de objetos
elementales entre paréntesis y separados por comas dobj1, dobj2 ....

7. IN seltab

7.1. Sintaxis

... col [NOT] IN seltab ...

7.2. Efecto

Esta expresión es verdadera si el valor de la columna “col” (no) es en


el conjunto de resultados descrito en las filas de la tabla de selección
“seltab”. Cualquier tabla interna con un tipo de fila que corresponda
a la de una tabla de rangos se puede especificar como “seltab” de
tabla de selección.

La tabla de selección se evalúa de la misma manera que en las


expresiones de comparación aparte del hecho de que en
comparaciones con los operadores CP y NP la condición WHERE es
sensible a mayúsculas y minúsculas, mientras que en otras
expresiones de comparación no lo es. Los caracteres comodín "*" y
"+" de las opciones de selección "CP" y "NP" se convierten en
caracteres comodín OpenSQL "%" y "_", por lo que el carácter de
escape "#" también se maneja correctamente. Si "%" y "_" están
contenidos en la plantilla, se genera un carácter de escape de
OpenSQL.

ABAP Open SQL logalisap.com


7

7.3. Opciones en tablas de rangos

Ejemplo con las posibles opciones que admite una tabla de rangos:

SIGN OPTIONS LOW HIGH


I EQ 01104711
I BT 10000000 19999999
I GE 90000000
E EQ 10000911
E BT 10000810 10000815
E CP 1%2##3#+4++5*

La siguiente condición WHERE se genera a partir del ejemplo:

... ( ID = '01104711' OR
ID BETWEEN '10000000' AND '19999999' OR
ID >= '90000000' ) AND
ID <> '10000911' AND
ID NOT BETWEEN '10000810' AND '10000815' AND
ID NOT LIKE '1#%2##3+4__5%' ESCAPE '#' ...

8. NULL

8.1. Sintaxis

... col IS [NOT] NULL ...

8.2. Efecto

Esta expresión es verdadera si el valor de col (no) es el valor nulo.

ABAP Open SQL logalisap.com

También podría gustarte