✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
LA SENTENCIA SELECT
SELECT: Se utiliza para acceder a las bases de datos. Su sintaxis es la siguiente:
SELECT <resultado> (Se colocan los campos que se quieren recuperar).
FROM <tabla> (Tabla origen de donde se sacan los datos).
INTO <target> (Destino donde seran alojados los datos).
WHERE <condiciones> (Condiciones de busqueda).
Para obtener todos los registros de una tabla usamos (*).
EJ:
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios.
INTO TABLE: Se usa para guardar el resultado de la consulta en una tabla interna.
Para conservar el contenido de una tabla interna usariamos APPENDING TABLE en lugar de INTO TABLE.
Se recomienda hacer CLEAR Y REFRESH de la tabla interna antes de hacer la seleccion.
Si queremos obtener solo un campo de la tabla debre crear una tabla auxiliar.
EJ:
SELECT dni
FROM ztabla_usuarios.
INTO TABLE ti_usuarios_aux.
SINGLE: para obtener la primera ocurrencia de la tabla donde se cumpla determinada condicion.
EJ:
CLEAR wa_usuarios.
SELECT SINGLE *
FROM ztabla_usuarios
INTO wa_usuarios
WHERE nombre_ape NE Space.
INTO CORRESPONDING FIELDS OF TABLE: para obtener de una tabla los registros que cumplan una condicion, pero queremos guardarlos en una tabla interna que no tiene la misma estructura que la tabla.
EJ:
SELECT nombre_ape estado_usu
FROM ztabla_usuarios
INTRO CORRESPONDING FIELDS OF TABLE ti_usuarios2
WHERE nombre_ape NE space
AND estado_usu = 'A'.
IN: se utiliza para los select-options en las condiciones de un select. Selecciono los registros que cumplan con los parametros de pantalla.
EJ:
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios
WHERE nombre_ape = p_nomape
AND estado_usu in s_estado.
MAX: para obtener el usuario con DNI mas alto.
EJ:
SELECT SINGLE MAX (dni)
INTO v_dni
FROM ztabla_usuarios
WHERE estado_usu = 'A'.
COUNT: Obtengo la cantidad de usuarios activos.
EJ:
SELECT COUNT (*)
INTO v_activos
FROM ztabla_usuarios
WHERE estado_usu = 'A'.
FOR ALL ENTRIES IN: obtengo los registros de los usuarios que existan en la tabla interna.
EJ:
SELECT *
INTO TABLE ti_usuarios
FROM ztabla_usuarios
FOR ALL ENTRIES IN ti_proveedores
WHERE dni = ti_proveedores-dni.
LIKE: obtengo todos los registros que cumplen un patron de texto en algunos de sus campos.
EJ: Recupero los usuarios cuyo nombre empieza por A.
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios
WHERE nombre_ape LIKE 'A%'.
 
 
 
Sobre el autor
Publicación académica de Gema Moreno Ferreiro, en su ámbito de estudios para la Carrera Consultor ABAP.
Gema Moreno Ferreiro
Profesión: Operario Especializado - España - Legajo: QO11N
✒️Autor de: 41 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Gema Moreno