Uso de Case fuera del Select ?

30/10/2007 - 22:13 por Penta | Informe spam
Estimados.
Uso SQL 200 SP4
Es posible usar Case fuera del select, asi como usar el IF ??

algo asi ?

declare @periodo

set @periodo=1

Select Case @periodo
Case @periodo=1 Then 'Uno'
Case @periodo=2 Then 'Dos
END

Salu2.
Penta.

Preguntas similare

Leer las respuestas

#1 Penta
30/10/2007 - 23:03 | Informe spam
Se me olvido este dato, quiero hacerlo dentro de un SP

Atte.
Penta.
Respuesta Responder a este mensaje
#2 Isaias
30/10/2007 - 23:24 | Informe spam
Penta

No se comprende lo que quieres hacer, pero esto funciona bien:

declare @periodo int

set @periodo=1

Select Case when @periodo = 1 then 'uno'
when @periodo = 2 then 'dos'
when @periodo = 3 then 'tres'
when @periodo = 4 then 'cuatro'

END

Saludos
IIslas


"Penta" wrote:

Estimados.
Uso SQL 200 SP4
Es posible usar Case fuera del select, asi como usar el IF ??

algo asi ?

declare @periodo

set @periodo=1

Select Case @periodo
Case @periodo=1 Then 'Uno'
Case @periodo=2 Then 'Dos
END

Salu2.
Penta.


Respuesta Responder a este mensaje
#3 smc
30/10/2007 - 23:44 | Informe spam
Estimado Penta:
Recuerda que puedes usar el SELECT en reemplazo del SET, asi que no te
compliques y claro que puedes hacer lo que te dijo Isaias y mucho mas, es
cuestion de lo que necesites. pejm:

************************************************************
SELECT
'estadoreserva' = CASE
WHEN ISNULL(PRO.IdProgramacion, 0) = 0 AND ISNULL(PRO.IdSap,'') = '' THEN 'N'
WHEN ISNULL(PRO.IdProgramacion, 0) > 0 AND ISNULL(PRO.IdSap,'') = '' THEN 'X'
WHEN ISNULL(PRO.IdProgramacion, 0) > 0 AND ISNULL(PRO.IdSap,'') <> '' AND
ISNULL(PRO.Estado, 'N') = 'P' THEN 'R'
WHEN ISNULL(PRO.IdProgramacion,0) > 0 AND ISNULL(PRO.IdSap,'') <> '' AND
ISNULL(PRO.Estado, 'N') IN ('C', 'A') THEN 'C' END
FROM xxxxxx PRO
************************************************************
Para este ejm. si fuera el caso, de que el SP recibiera una @variable podria
trabajarla internamente del select mostrado y trabajaría sin ningun problema.
Respuesta Responder a este mensaje
#4 Penta
31/10/2007 - 14:55 | Informe spam
Hola.
Gracias por responser.
Lo que pasa es que se crea una temporal y luego se cruza con una
tabla, en estos momento lo hgo asi, pero queria saber como lo podria
ser con case.

if @mes=3
INSERT INTO #linealizadas
select codprof, sum(horas) n from av_variaciones with(nolock)
where marzo is not null
group by codprof having sum(horas)<>0;
else if @mes=4
INSERT INTO #linealizadas
select codprof, sum(horas) n from av_variaciones with(nolock)
where abril is not null
group by codprof having sum(horas)<>0;

Como se podra apreciar cambiar en eL Where el el nombre de la columna.

etc..

Atte.
Penta
Respuesta Responder a este mensaje
#5 smc
31/10/2007 - 15:56 | Informe spam
Pregunta?en tu tabla temporal, tienes campos para todos los meses o algo asi?
si es asi no todos estan llenos verdad? Responde para verlo lo más pronto
posible

Atte,
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida