✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
INSTRUCCIONES SQL:
1.-La sentencia SELECT.- Se utiliza para acceder a las bases de datos.
SELECT <resultado> Se colocan los campos a recuperar
FROM <tabla> Origen de los datos
INTO <target> Destino donde se alojan los datos
WHERE <condiciones> Condiciones de la búsqueda
ejemplo:
*Seleccionar todos los registros.
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios.
donde TI_USUARIOS es una tabla interna del mismo tipo de la tabla ZTABLA_USUARIOS.
"Evitar el uso de * cuando se requiera obtener algunos campos de la tabla".
Si se requiere conservar el contenido de la tabla interna, se debe 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".
"Siempre después de un SELECT se debe preguntar por el SY-SUBRC para saber cómo proseguir".
Si se quiere obtener la primera ocurrencia de la tabla ZTABLA_USUARIOS en donde se cumpla determinada condición, se debe usar SINGLE.
Ejemplo:
*Seleccionar el primer registro que cumpla la condición
CLEAR wa_usuarios.
SELECT SINGLE *
FROM ZTABLA_USUARIOS
INTO wa_usuarios
WHERE nombre_ape NE space.
Para obtener los registros que cumplan una condición y guardarlos en una tabla interna que no tiene la misma estructura que la tabla de BDD, entonces se debe usar INTO CORRESPONDING FIELDS OF TABLE.
*Seleccionar el primer registro que cumpla la condición
SELECT nombre_ape estado_usu
FROM ZTABLA_USUARIOS
INTO CORRESPONDING FIELDS OF TABLE ti_usuarios2
WHERE nombre_ape NE space
AND estado_usu = 'A'.
Dado una pantalla con Nombre y apellido (P_NOMAPE) y estado Usuario es el SELECT-OPCIONS S_ESTADO. si se quiere hacer una selección a la tabla ZTABLA_USUARIOS en base a lo que los usuarios ingresan ??
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios
WHERE nombre_ape = p_nomape
AND estado_usu IN s_estado.
La cláusula IN se utiliza para los SELECT-OPTIONS en las condiciones de un SELECT.
Con MAX, se obtiene el DNI más grande
Con COUNT(*) se obtiene el número de registros
Para 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 permite especificar condiciones en tiempo de ejecución.
Ejemplo:
SELECT *
INTO TABLE ti_usuarios (OJO cambiar el orden con la sig.)
FROM ztabla_usuarios
FOR ALL ENTRIES IN ti_proveedores
WHERE dni = ti_proveedores_dni.
Para obtener todos los registros que cumplan con un patrón de texto en alguno de sus campos, debemos utilizar la sentencia LIKE como vemos en el siguiente ejemplo.
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios
WHERE nombre:ape LIKE 'A%'.
 
 
 
Sobre el autor
Publicación académica de Miguel Angel Acosta Acosta, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Angel Acosta Acosta
Profesión: Ingeniero de Sistemas - Ecuador - Legajo: TF64C
✒️Autor de: 238 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial
- Máster ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Profesional de ingeniería de sistemas en computación e informática, con experiencia en la implantación y soporte de proyectos informáticos para empresas del sector industrial y financiero.
Certificación Académica de Miguel Acosta