✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
- Instrucciones SQL: La sentencia SELECT
- La sentencia SELECT
SELECT <resultado> "Los campos que se quieren recuerar
FROM <tabla> "Tabla de origen de donde se sacan los datos
INTO <target> "Destino donde serán alojados los datos
WHERE <condiciones> "Condiciones de la búsqueda
Para obtener todos los campos de una tabla en el espacio de resultado colocaremos asterisco(*). Es recomendable evitar utilizar asterisco cuando se quieran obtener solo algunos campos.
Si la tabla interna en donde queremos almacenar el resultado del Select ya contiene datos estos datos será sobre escritos por el resultado de la nueva consulta, si queremos que los datos se sigan almacenando necesitamos usar la cláusula APPENDING TABLE en lugar de INTO TABLE, con esta cláusula los datos se colocaran al final de la tabla sin sobre escribir los ya existentes.
Es recomendable hacer CLEAR y REFRESH de la tabla interna antes de realizar la selección.
Siempre después de un SELECT debemos preguntar por el SY-SUBRC para saber como proseguir.
Para obtener solo la primera ocurrencia de la tabla donde se cumpla determinada condición debemos usar la cláusula SINGLE:
SELECT SINGLE *
FROM <tabla>
INTO TABLE <tabla2>
WHERE <condiciones>
Si se realiza la misma consulta anterior pero solo queremos obtener un campo del primer renglón de la tabla, entonces podemos almacenar el resultado en una variable:
SELECT SINGLE <campo>
FROM <tabla>
INTO <variable>
WHERE <condiciones>
Si queremos guardar los resultados obtenidos de una consulta en una tabla interna con diferente estructura que la tabla, tenemos que usar la cláusula INTO CORRESPONDING FIELDS OF TABLE, esta sentencia realiza la comparación de los campos teniendo en cuenta los tipos de los campos y la posición de cada uno de ellos.
SELECT SINGLE <campo>
FROM <tabla>
INTO CORRESPONDING FIELDS OF TABLE <tabla interna>
WHERE <condiciones>
Si quisiéramos hacer una selección a una tabla en base a lo que los usuarios ingresan por pantalla, esto lo haríamos con las condiciones de la cláusula WHERE. Para un parámetro normal utilizamos el signo de igual, mientras que para los parámetros de select-option se utiliza la cláusula IN.
SELECT SINGLE <campo>
FROM <tabla>
INTO TABLE<tabla interna>
WHERE nombre_ape = p_nomape AND estado_usu IN s_estado.
Para obtener el valor más alto de algún campo usamos la cláusula MAX.
SELECT SINGLE MAX (<campo>)
FROM <tabla>
INTO <variable>
WHERE <condiciones>
* Nota: Cuando creamos la sentencia SELECT es igual para el compilador ABAP si colocamos primero FROM y luego INTO o al revés.
Si quisiéramos saber la cantidad de registros de algún campo utilizamos la cláusula COUNT
SELECT COUNT (*)
FROM <tabla>
INTO <variable>
WHERE <condiciones>
Si quisiéramos obtener de una tabla todos los registros que existan en una tabla interna cargada con datos, entonces usamos la sentencia FOR ALL ENTRIES IN que nos permite especificar condiciones en tiempo de ejecución.
SELECT *
FROM <tabla>
INTO TABLE <tabla>
FOR ALL ENTRIES IN <tabla>
WHERE <condiciones>.
Si quisiéramos obtener todos los registros que cumpla con un patrón de texto en alguno de los campos, usamos LIKE
SELECT *
FROM <tabla>
INTO TABLE <tabla>
WHERE nombre_ape LIKE 'A%'.
 
 
 
Sobre el autor
Publicación académica de Sandra Erika Bernabe Abreu, en su ámbito de estudios para la Carrera Consultor ABAP.
Sandra Erika Bernabe Abreu
Profesión: Ingeniería en Sistemas Computacionales - Mexico - Legajo: EW68S
✒️Autor de: 58 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Sandra Bernabe