✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
Lección: Instrucciones SQL: La sentencia SELECT
1) La sentencia SELECT
Existen en ABAP un conjunto de sentencias que se utilizan para acceder a las bases de datos. La principal sentencia es SELECT, cuya sintaxis es:
Select (resultado), en resultado se colocan los campos que se quieren recuperar
From (tabla), tabla es la tabla origen de donde se sacan los datos
Into (target) , target es el destino donde serán alojados los datos
where (condiciones), condiciones de la búsqueda
Para obtener todos los registros de la tabla ZTABLA_USUARIOS se utiliza un código, donde TI_USUARIOS es una tabla interna del mismo tipo de la tabla ZTABLA-USUARIOS. El asterisco indica que se obtendrán todos los campos de la tabla. La cláusula INTO TABLE se utiliza cuando el resultado de la consulta se guarda en una tabla interna.
Evitar el uso del asterisco cuando solo se requiera obtener algunos campos de la tabla origen
En la sentencia anterior, en caso de existir registros en la tabla ZTABLA_USUARIOS, estos pisarán el contenido de la tabla interna TI_USUARIOS.
Podría ocurrir que queramos conservar el contenido de la tabla interna TI_USUARIOS luego de reiteradas selecciones. En este caso tendríamos que usar la cláusula APPENDING TABLE en lugar de INTO TABLE.
Es recomendable hacer CLEAR Y REFRESH de la tabla interna antes de realizar la selección
Si queremos obtener de todos los campos de la tabla ZTABLA-USUARIOS el campo DNI deberíamos crear una tabla auxiliar solo con el campo DNI para alojar el resultado de la consulta
Siempre después de un SELECT se debe preguntar por el SY-SUBRC para saber como proseguir
Si quisiéramos obtener la primera ocurrencia de la tabla ZTABLA_USUARIOS donde se cumpla determinada condición debemos usar la cláusula SINGLE
El resultado de esta consulta será guardado en la estructura WA_USUARIOS que es del mismo tipo que la tabla ZTABLA_USUARIOS.
Si quisiéramos hacer la misma consulta pero necesitamos obtener solo el campo DNI entonces ya no sería necesaria la estructura WA_USUARIOS sino que guardaríamos el resultado en la variable V_DNI
Si quisiéramos obtener de una tabla los registros que cumplan una condición pero queremos guardarlos en una tabla interna que no tienen la misma estructura que la tabla, entonces tenemos que usar la cláusula INTO CORRESPONDING FIELDS OF TABLE
En el ejemplo anterior, la tabla interna TI-USUARIOS2 está compuesta por los campos NOMBRE_APE y ESTADO-USU
Tenemos un reporte con una pantalla de selección, donde Nombre y Apellido es el parameter P_NOMAPE y Estado Usuario es el select-options S_ESTADO. Si quisiéramos hacer una selección a la tabla ZTABLA_USUARIOS en base a lo que los usuarios ingresan por pantalla
La cláusula IN se utiliza para los select-options en las condiciones de un select
Si quisiéramos obtener el usuario activo con DNI más alto tendríamos que usar la cláusula MAX
Si quisiéramos saber la cantidad de usuarios con estado = "activo", debemos usar la cláusula COUNT
Si quisiéramos obtener de una tabla todos los registros que existan en una tabla interna cargada con datos, entonces debemos utilizar la sentencia FOR ALL ENTRIES IN que nos permite especificar condiciones en tiempo de ejecución
Si quisiéramos obtener todos los registros que cumplan con un patrón de texto en alguno de sus campos, debemos utilizar la sentencia LIKE
 
 
 
Sobre el autor
Publicación académica de Aida Cortina Fernandez, en su ámbito de estudios para la Carrera Consultor ABAP.
Aida Cortina Fernandez
Profesión: Consultor Junior - España - Legajo: MK87X
✒️Autor de: 74 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Certificación Académica de Aida Cortina