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

if dentro de un case

Estas en el tema de if dentro de un case en el foro de Bases de Datos General en Foros del Web. holas... me gustaria saber si se puede inkluir un if dentro de un case en sql, porke tengo el siguiente kodigo de un procedimiento y ...
  #1 (permalink)  
Antiguo 14/07/2005, 14:14
Avatar de Punktruka  
Fecha de Ingreso: enero-2005
Ubicación: Santiago, Chile
Mensajes: 215
Antigüedad: 19 años, 3 meses
Puntos: 0
Pregunta if dentro de un case

holas... me gustaria saber si se puede inkluir un if dentro de un case en sql, porke tengo el siguiente kodigo de un procedimiento y me da error de sintaxis..
Código:
case descrip_form.tipo
		  when 't' then 
			convert(nvarchar(4000),isnull(valor_hist.v_t,'--'))
		  when 's' then 
			convert(nvarchar(800),isnull(valor_hist.v_t,'--'))
		  when 'c' then 			
			if exists(select cod_ubic from valor_hist where cod_ubic = @cod_ubic and cod_campo = '4263')
			begin
				set @var='s'
				select @var as mercado
			end
			else
			begin
				set @var='n'
				select @var as mercado
			end
		  when 'm' then 
			convert(nvarchar(4000),isnull(valor_hist.v_m,'--'))
		  when 'n' then 
			convert(nvarchar(200),convert(int,isnull(valor_hist.v_n,'0')))
		  when 'f' then 
			convert(nvarchar(10),isnull(valor_hist.v_f,null) ,103)
		  when 'e' then 
			'Titulo'
	else '--' 
        end
        as valor
porfis ayuyaaaaa
__________________
y nada más
porke el cielo ya está de nuevo torvo y sin estrellas kon helikópteros y SIN DIOS....
  #2 (permalink)  
Antiguo 14/07/2005, 14:55
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 6 meses
Puntos: 3
Hola, no puedes incluir el if en ese lugar; pero en lugar de usar ese if puedes usar otro case:

case descrip_form.tipo
when 't' then
convert(nvarchar(4000),isnull(valor_hist.v_t,'--'))
when 's' then
convert(nvarchar(800),isnull(valor_hist.v_t,'--'))
when 'c' then
case when (select cod_ubic from valor_hist where cod_ubic = @cod_ubic and cod_campo = '4263') is not null
then
set @var='s'
select @var as mercado
else
set @var='n'
select @var as mercado
end
when 'm' then
convert(nvarchar(4000),isnull(valor_hist.v_m,'--'))
when 'n' then
convert(nvarchar(200),convert(int,isnull(valor_his t.v_n,'0')))
when 'f' then
convert(nvarchar(10),isnull(valor_hist.v_f,null) ,103)
when 'e' then
'Titulo'
else '--'
end
as valor
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #3 (permalink)  
Antiguo 14/07/2005, 16:17
Avatar de Punktruka  
Fecha de Ingreso: enero-2005
Ubicación: Santiago, Chile
Mensajes: 215
Antigüedad: 19 años, 3 meses
Puntos: 0
ok muuuuuuuuxaaas.. gracias por tu ayuda.
__________________
y nada más
porke el cielo ya está de nuevo torvo y sin estrellas kon helikópteros y SIN DIOS....
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:48.