✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
Instrucciones SQL: La sentencia Select
Para Acceder a la base de datos existe la sentencia Select
Sintaxis
Select <resultado> = en resultado se colocan los campos que se quieren recuperar.
FROM <tabla> = Tabla origen de donde se sacan los datos
INTO <Target> = Target es el destino donde seran alojados los datos. Se usa cuando se va a guardar en una tabla interna.
Si queremos conservar los datos resultantes dentro de la tabla interna se usa la sentencia APPENDING TABLE en vez de INTO.
Es recomendable hacer un Clear y refresh a la tabla interna antes de usarla.
1 Sentencia SINGLE para obtener la primer ocurrencia que cumpla con la condicion.
Select single *
2 Para Obtener un solo dato y guardarlo en una variable usariamos de la siguiente forma:
clear v_dni "Variable a almacenar el resultado de la consulta qe solo obtiene el primer dni encontrado de acuerdo a la condicion
select single dni
from ztabla_usuarios
into v_dni
where nombre_ape NE space.
Where <Condiciones> = Condiciones de la busqueda.
Siempre despues del select se debe preguntar por el SY-SUBRC para saber como proseguir.
3 INTO CORRESPONDING FIELDS OF TABLE es para guardar el resultado de una consulta dentro de una tabla que no tiene la misma estructura de la que se obtienen los datos.
ejemplo:
Select nombre_ape estado_usu
From ztabla_usuarios
into corresponding fields of table ti_usuarios2
where nombre_ap NE space.
and estado_usu = 'A'
la tabla TI_usuarios2 esta compuesta por los campos nombre_ape y Estado_usu.
4 Clausula IN se utiliza para los select-options en las condiciones de un select.
Ejemplo
s_estado (es un select-option)
Select * From ztabla_usuarios into table ti_usuarios where nombre_ape = P_nomape and estado_usu IN S_estado.
5 Clausula MAX para obtener el mayor valor de una tabla.
ejemplo
Select single MAX(dni)
INTO v_dni
FROM ztabla_usuarios
where Estado_usu = 'A'
6 Clausula Count
Select count(*)
into v_activos
from ztabla_usuarios
where estado_usu='A'
7 FOR ALL ENTRIES si queremos obtener de una tabla todos los registros que existan en una tabla interna. Esta forma es mas performante, porque accede una sola vez a la tabla
Equivale a buscar todos los datos que esten en ztabla_usuarios y obtiene todo los datos de ti_proveedores que tengan el mismo dni. y se lo asigna a la tabla ti_usuarios.
8 LIKE se usa si queremos obtener todos los registros que cumplan con un patron de texto.
Select * from ztabla_usuarios into table ti_usuarios where nombre_ape like 'A%'.
Ejemplo
Select *
into table ti_usuarios
from ztabla_usuarios
for all entries in ti_proveedores
where dni = ti_proveedores-dni.
 
 
 
Sobre el autor
Publicación académica de Silvia Marina Carrizo, en su ámbito de estudios para la Carrera Consultor ABAP.
Silvia Marina Carrizo
Profesión: Analista Senior Genexus - Argentina - Legajo: ER54O
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Silvia Carrizo