Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Validación en un SELECT

Estas en el tema de Validación en un SELECT en el foro de SQL Server en Foros del Web. Buen dia tengo el siguiente problema... Dentro de un select estoy obteniendo varios campos, pero al obtener uno de ellos ocupa la siguiente validación: * ...
  #1 (permalink)  
Antiguo 05/02/2009, 13:39
Avatar de ShonTirado  
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 1
Validación en un SELECT

Buen dia tengo el siguiente problema...

Dentro de un select estoy obteniendo varios campos, pero al obtener uno de ellos ocupa la siguiente validación:

* Si el campo X tiene en su tabla de catalogo el campo PORDEFAULT marcado con un 1 debo de hacer algo, si es diferente de 1 debo de hacer otra cosa.

Ya probe con el IF(EXISTS(SELECT...)), pero si lo pones dentro de un select no funciona tiene que ir en el WHERE para que no marque error...

Ahora estoy probando con lo siguiente...

SELECT CASE (SELECT Codigo FROM CatalogoMoneda WHERE Codigo = MiCampoAComparar And PorDefault = 1)
WHEN '' THEN
Convert(varchar(15),'NO ENCONTRO')
ELSE Convert(varchar(15),'ENCONTRO')
END As Bandera


El problema con este select es que aunque no encuentre ningun registro siempre el resultado es 'ENCONTRO'.

¿Hay alguna forma de validar esto ?...

Espero y me puedan ayudar, saludos.
  #2 (permalink)  
Antiguo 05/02/2009, 13:47
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 20 años, 4 meses
Puntos: 6
Respuesta: Validación en un SELECT

Prueba de esta manera:

DECLARE @TABLA TABLE ( intId integer, varNombre varchar(50))
INSERT INTO @TABLA VALUES( 1, 'PRUEBA 1' )
INSERT INTO @TABLA VALUES( 2, 'PRUEBA 2' )
INSERT INTO @TABLA VALUES( 2, 'PRUEBA 3' )
INSERT INTO @TABLA VALUES( 2, 'PRUEBA 4' )

SELECT CASE
WHEN EXISTS ( SELECT * FROM @TABLA WHERE VARNOMBRE = 'PRUEBA 4') THEN 'EXISTE'
ELSE 'NO EXISTE'
END [EXISTE DATO],
CASE
WHEN EXISTS ( SELECT * FROM @TABLA WHERE VARNOMBRE = 'PRUEBA 5') THEN 'EXISTE'
ELSE 'NO EXISTE'
END [NO EXISTE DATO]
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #3 (permalink)  
Antiguo 05/02/2009, 13:49
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Validación en un SELECT

Código:
SELECT isnull(CASE (SELECT Codigo FROM CatalogoMoneda WHERE Codigo = MiCampoAComparar And PorDefault = 1),'')
WHEN '' THEN
Convert(varchar(15),'NO ENCONTRO')
ELSE Convert(varchar(15),'ENCONTRO') 
END As Bandera
Con esto debe funcionar, aunque tengo mis sospechas de que ese subquery podria eliminarse para optimizar la consulta...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #4 (permalink)  
Antiguo 05/02/2009, 13:53
Avatar de ShonTirado  
Fecha de Ingreso: septiembre-2008
Mensajes: 65
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Validación en un SELECT

THUMPER muchas gracias !!!!

Ya estaba muy bloqueado no hayaba la puerta jajaja...

Me quedo perfecto.

Gracias por tu ayuda...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.