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

Case En Un Sp Para Más De 2 Opciones

Estas en el tema de Case En Un Sp Para Más De 2 Opciones en el foro de SQL Server en Foros del Web. Preciso hacer un case en el cual contemple como 6 ó 7 casos... no es del estilo: Select campo = case..campo when ... sino: Select ...
  #1 (permalink)  
Antiguo 25/05/2007, 14:01
 
Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 3 meses
Puntos: 0
Case En Un Sp Para Más De 2 Opciones

Preciso hacer un case en el cual contemple como 6 ó 7 casos...

no es del estilo:
Select campo = case..campo when ...

sino:
Select case when .....<sentencias>

el tema es que si pongo case when sentencia1 else sentencia2
la sentencia 2 se hace si no se hace la 1, quiero agregarle sentencia 3, 4 y 5, alguna idea???

TIENE QUE SER UN SELECT CON CASE , NO IF, PORQUE ESTOY CONCATENANDO EN UN SP
  #2 (permalink)  
Antiguo 25/05/2007, 15:26
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Case En Un Sp Para Más De 2 Opciones

Código:
Declare @cadena varchar(1000)

Set @cadena = 'Polimnia'

Select case 
       When @cadena = 'Caliópe'    Then 'Elocuencia' 
       When @cadena = 'Clío'       Then 'Historia'
       when @cadena = 'Melpómene'  Then 'Teatro' 
       When @cadena = 'Terpsícore' Then 'Danza' 
       When @cadena = 'Urania'     Then 'Astronomía' 
       When @cadena = 'Talía'      Then 'Comedia' 
       When @cadena = 'Polimnia'   Then 'Poesía-Lírica-Sacra' 
       When @cadena = 'Erato'      Then 'Poesía Amorosa' 
       When @cadena = 'Euterpe'    Then 'Música' 
       Else 'No encontrada'
       End  Resultado
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 25/05/2007, 15:38
 
Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Case En Un Sp Para Más De 2 Opciones

no es eso lo que busco,
dentro el case when ->
meter if campo1 > 0
if campo3 <> campoext

etc
etc
  #4 (permalink)  
Antiguo 25/05/2007, 16:04
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Case En Un Sp Para Más De 2 Opciones

ah ok...
es igual... puedes meter otro case when anidado..
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 25/05/2007, 16:06
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Case En Un Sp Para Más De 2 Opciones

Código:
Declare @cadena varchar(1000), @status int

Set @cadena = 'Polimnia'

Select case  When @Status = 1 Then
        Case
       When @cadena = 'Caliópe'    Then 'Elocuencia' 
       When @cadena = 'Clío'       Then 'Historia'
       when @cadena = 'Melpómene'  Then 'Teatro' 
       When @cadena = 'Terpsícore' Then 'Danza' 
       When @cadena = 'Urania'     Then 'Astronomía' 
       When @cadena = 'Talía'      Then 'Comedia' 
       When @cadena = 'Polimnia'   Then 'Poesía-Lírica-Sacra' 
       When @cadena = 'Erato'      Then 'Poesía Amorosa' 
       When @cadena = 'Euterpe'    Then 'Música' 
       Else 'No encontrada'
       End 
       Else
            'no valido'
       End Resultado
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 25/05/2007, 22:20
 
Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Case En Un Sp Para Más De 2 Opciones

bárbaro gracias, en el caso que pusiste en realidad te conviena más poner:
select campo= case
así no repetis ese campo,
pero respecto a mi pregunta dejo por terminado el tema.
saludos,
Martín
  #7 (permalink)  
Antiguo 28/05/2007, 08:04
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Re: Case En Un Sp Para Más De 2 Opciones

No te entendi, pero bueno.

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.
  #8 (permalink)  
Antiguo 28/05/2007, 09:52
 
Fecha de Ingreso: febrero-2007
Mensajes: 182
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Case En Un Sp Para Más De 2 Opciones

te voy a poner un ejemplo cuando llegue hoy al laburo, ya que creo que es la base de la didáctica,

pero en si, abstractamente lo que quería hacer era ponele que tenés que imprimir un sólo campo, es decir en un store procedure
un select de "algo" nada más

entonces ese "algo", depende de ciertos campos, pero no es que si el campo es ='NAC' EMPRIMO NACIONALIDAD, SI ES ='EXT' IMPRIMO EXTRANJERO, sino que si es ='NAC', entonces me fijo en otros campos, y si es ='EXT' me fijo en campos diferentes a los de NAC, asi con 8 ó 9 condiciones, por eso invocaba en un mensaje anterior el tema de meter if's en el case, pero acuerdensen que el case lo estoy haciendo dentro de un select

Si me preguntan : "porque no haces los if's fuera del select" ??
les respondo: El Tema es que es un select de un cursor en el cual se el idclie en este caso, que es por donde avanza el cursor,

espero algún ocmentario del tema, así lo podemos cerrar, y nos queda posteado frente a una eventual duda similar

Un abrazo
Martin
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:55.