✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
Sentencia SELECT
La sentencia SELECT será la instrucción fundamental para leer información de la base de datos.
Lectura de un único registro:
SELECT SINGLE * FROM <tab>
WHERE <cond>.
Como realizamos la búsqueda de un registro, en la condición sólo podremos utilizar la igualdad y el operador AND, ya que especificaremos toda la clave del registro.
Si SY-SUBRC = 0 Registro encontrado. Resultado en área de trabajo.
Si SY-SUBRC = 4 No existe el registro buscado.
CLEAR v dni.
SELECT SINGLE dni
FROM ztabla_usuarios
INTO v_dni
WHERE nombre_ape NE space.
Guardamos sólo el DNI del primer registro que encuentre que cumpla la condición.
Lectura Iterativa: Selección de un grupo de registros.
SELECT * FROM <tab>
(WHERE <cond>).
ENDSELECT.
Selecciona todos los registros que cumplan la condición de la cláusula WHERE, o todos en caso de no utilizarla. El resultado lo tendremos en el área de trabajo, es decir en cada iteración del bucle SELECT ... ENDSELECT tendremos un registro leído en dicha área.
Si SY-SUBRC = 0 Algún registro encontrado.
Si SY-SUBRC = 4 No existe ningún registro que cumpla la condición del WHERE.
Si la condición del WHERE se acerca a la clave de la tabla, la búsqueda de registros será más óptima.
Otras posibilidades del WHERE:
SELECT * FROM <tab> WHERE <campo> ...
Otras lecturas :
Podemos leer una tablas de base de datos y simultáneamente llenar una tabla interna con el resultado de la lectura.
SELECT * FROM <tab> INTO TABLE <intab> (WHERE <cond>).
Llena la tabla interna <intab> machacando los registros que pudiera tener esta. Si queremos que respete los registros que tenía la tabla interna antes de realizar el SELECT tendremos que utilizar :
SELECT * FROM <tab> APPENDING TABLE <intab> (WHERE <cond>).
Podemos indicar un orden en el proceso de selección de registros.
SELECT * ... ORDER BY <campo1> <campo2> ...
Si queremos seleccionar un registro para bloquearlo de posibles modificaciones.
SELECT SINGLE FOR UPDATE * FROM <tab>.
Si quisiéramos obtener de todos los campos de la tabla ZTABLA_USUARIOS el campo DNI debería crear una tabla auxiliar solo con el campo DNI para alojar el resultado de la consulta.
SELECT dni
FROM ztabla_usuarios
INTO TABLE
 
 
 
Sobre el autor
Publicación académica de Alberth Julian Bolanos Bravo, en su ámbito de estudios para la Carrera Consultor ABAP.
Alberth Julian Bolanos Bravo
Profesión: Analista de Sistemas Web - Colombia - Legajo: FC65L
✒️Autor de: 46 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alberth Bolanos