✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
Instrucciones SQL: La sentencia SELECT
ABAP contiene un conjunto de sentencias que se utilizan para acceder la Base de Datos. La principal es la sentencia SELECT.
La diferencia entre SQL y el ABAP es la utilización de la cláusula INTO, que simplemente indica que estructura de datos (tabla interna?) va a ser la receptora de la salida de la ejecución de la sentencia SELECT.
Ej. SELECT * FROM ZTABLA_USUARIOS INTO ti_usuarios.
Esta sentencia muestra todos los registros y campos de datos de la tabla ZTABLA_USUARIOS, y los almacena temporalmente en la tabla interna ti_usuarios, la cual es del mismo tipo de ZTABLA_USUARIOS.
Cada vez que se ejecuta un SELECT INTO hacia la tabla interna ti_usuarios, se borra el contenido anterior y luego se añade el resultado de la nueva ejecución del SELECT. Si queremos conservar los resultados anteriores, se utilizaría APPEDING TABLE en lugar de INTO TABLE.
Es buena práctica chequear el valor del SY-SUBRC después de ejecutar un SELECT.
Si queremos solo la primera ocurrencia que satisfaga el criterio de selección, utilizamos la cláusula SINGLE.
Ej. SELECT SINGLE * FROM ztabla_usuarios into wa_usuarios WHERE nombre_ape NE space.
Si queremos obtener de una tabla los registros que cumplan el criterio de selección, y guardarlos en una tabla interna de estructura distinta a la de la tabla de la base de datos, pero con algunos campos en común, se utiliza la cláusula INTO CORRESPONDING FIELDS OF TABLE.
Ej. SELECT SINGLE * FROM ztabla_usuarios
INTO CORRESPONDING FIELDS OF TABLE ti_usuarios
WHERE nombre_ape NE space.
AND estado_usu = ‘A’.
En caso de que parte del criterio de seleccion sea el valor seleccionado por un usuario, en un parámetro tipo SELECT-OPTIONS, se utiliza la cláusula IN.
Si deseamos obtener el valor más alto de un campo, utilizamos la cláusula MAX().
Si quisiéramos la cantidad de registros que satisfacen el criterio de selección, utilizamos la cláusula COUNT(*).
Si quisiéramos obtener de una tabla todos los registros, cuyos valores de campos comunes existan también en una tabla interna, se utiliza la cláusula FOR ALL ENTRIES IN.
Si deseamos obtener registros que cumplan con un cierto patrón de texto en alguno de sus campos, se utiliza la sentencia LIKE.
Tips: Para ABAP es indiferente el orden de colocación de las sentencias FROM y/o INTO.
 
 
 
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez