Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Se puede hacer una consulta a un campo calculado? (https://www.clubdelphi.com/foros/showthread.php?t=48988)

flystar 10-10-2007 00:44:41

Se puede hacer una consulta a un campo calculado?
 
Buenos Días:

Tengo una tabla que almacena el Nombre de personas en 3 partes o campos
Nombre, ApellidoPaterno y ApellidoMaterno.

Configure un "campo calculado" llamado "NombreCompleto" mas a la tabla usando esa funcionalidad de Delphi donde su valor es la suma de los 3 campos anteriores y entre ellos un espacio en blanco para que ahi contenga el Nombre completo.

Voy a realizar una ventanite simple para poder encontrar o consultar nombres en la tabla y seria mas sencillo poder hacer una consulta en base al campo "NombreCompleto" sin embargo me parece que eso no puede funcionar al hacer una consulta SQL sobre ese campo por que la consulta es en base a la estructura fisica real de la tabla y no a la virtual cierto??

O si se puede????????

:confused:

poliburro 10-10-2007 00:48:47

Es correcto, la consulta sql solo te devuelve los campos existentes en la tabla o el resultado de las operaciones entre esos campos.

En lugar de un campo calculado, puedes usar una función en sql que haga lo mismo .

suerte

Ivanzinho 10-10-2007 09:24:38

Lo podrías hacer de dos maneras :

1.- Tienes los campos que el usuario introdujo separados por espacios. Puedes utilizarlos por separado

2.- Puedes concatenar los campos en el where de la select y realizar la comparación por la concatenación.

Si no entiendes algo no dudes en preguntar.

Un saúdo.

flystar 10-10-2007 19:49:50

Gracias por sus respuestas
 
Efectivamente, creo que el campo calculado lo tendre que crear en tiempo de ejecucion del SQL de la siguiente forma "mas o menos":

Select funcion_concatena(nombre, apellidoP, apellidoM) as NombreCompleto
where

NombreCompleto like '%Nombre_Que_Se_Busca%'


Verdad??? Asi sera?

Ivanzinho 11-10-2007 11:11:10

Si lo quieres hacer con like creo que sería más correcto lo siguiente :
Código:

//Descomponemos el nombre completo en nombre, apellido1, apellido2
DescomponerNombre(NombreIntroducido);

//Seleccionamos los registros coincidentes
Select funcion_concatena(nombre, apellidoP, apellidoM) as NombreCompleto
where Nombre like '%Nombre%' and ApellidoP like '%Ape1%' and ApellidoM like '%Ape2%';

La descomposición la puedes hacer porque el usuario introduce le nombre y los apellidos separados por espacios.

Un saúdo


La franja horaria es GMT +2. Ahora son las 09:19:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi