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

Duda con CASE

Estas en el tema de Duda con CASE en el foro de SQL Server en Foros del Web. Hola Estoy haciendo una consulta, usando un CASE. El problema es que no puedo hacer una subConsulta en el THEN Código: CASE campo WHEN 1 ...
  #1 (permalink)  
Antiguo 11/10/2012, 10:56
 
Fecha de Ingreso: mayo-2012
Ubicación: monterrey Mexico
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Duda con CASE

Hola

Estoy haciendo una consulta, usando un CASE.
El problema es que no puedo hacer una subConsulta en el THEN


Código:
CASE campo
	WHEN 1 THEN (SELECT campo FROM TABLA WHEN   campo=campo) 
        ELSE 'NA' 
END
Me marca error de sintaxis, pero cuando quito la subconsulta y solo pongo ' ' , asi si funciona

Espero puedan ayudarme

Gracias
  #2 (permalink)  
Antiguo 11/10/2012, 12:11
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda con CASE

¿Porque no lo manejas con un simple IF?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 12/10/2012, 11:02
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Duda con CASE

Intenta con 'Where' en lugar de 'When' (en la subconsulta):
Código SQL:
Ver original
  1. SELECT CASE campo
  2.     WHEN 1 THEN (SELECT campo FROM TABLA2 T2 WHERE  T2.campo=T1.campo)
  3.         ELSE 'NA'
  4.         END
  5. FROM Tabla1 T1;
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #4 (permalink)  
Antiguo 12/10/2012, 12:09
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda con CASE

Opssss, ¿de donde sacaste el SELECT a una supuesta T1?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 12/10/2012, 12:42
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Duda con CASE

Supongo que a condición "campo=campo" representa alguna relación entre la consulta y la subconsulta.
En la consulta - T1 es el Alias de la tabla,
y en la subconsulta - T2 es el Alias.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #6 (permalink)  
Antiguo 15/10/2012, 09:23
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda con CASE

Suponiendo, que la suposicion fuera correcta.
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 15/10/2012, 22:28
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda con CASE

Aqui creo q el error es q campo es de tipo numerico y pone en el else `na` entonces habria q poner un select case when 1 then select convert(varchar(max),campo) from tabla else `na`



Saludos!!!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: case, server, sql
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 12:37.