Saltar al contenido

Declaración CASE IN con múltiples valores

Traemos la mejor respuesta que encontramos on line. Nosotros deseamos que te sirva de ayuda y si quieres compartir algo que nos pueda ayudar a mejorar puedes hacerlo..

Solución:

Sí. Debe usar el formulario “Buscado” en lugar del formulario “Simple” del CASE expresión

SELECT CASE
         WHEN c.Number IN ( '1121231', '31242323' ) THEN 1
         WHEN c.Number IN ( '234523', '2342423' ) THEN 2
       END AS Test
FROM   tblClient c  

Puede devolver el mismo valor de varias coincidencias:

SELECT
  CASE c.Number
    WHEN '1121231' THEN 1
    WHEN '31242323' THEN 1
    WHEN '234523' THEN 2
    WHEN '2342423' THEN 2
  END AS Test
FROM tblClient c

Esto probablemente dará como resultado el mismo plan de ejecución que la sugerencia de Martin, por lo que es más una cuestión de cómo desea escribirlo.

La pregunta es específica de SQL Server, pero me gustaría ampliar la respuesta de Martin Smith.

El estándar SQL:2003 permite definir múltiples valores para expresión de caso simple:

SELECT CASE c.Number
          WHEN '1121231','31242323' THEN 1
          WHEN '234523','2342423' THEN 2
       END AS Test
FROM tblClient c;

Es una característica opcional: Predicados separados por comas en expresiones CASE simples” (F263).

Sintaxis:

CASE 
     WHEN [,  ...] THEN 
    [WHEN [,  ...] THEN 
     ...]
    [ELSE ]
END

En cuanto a saber, no conozco ningún RDBMS que realmente admita esa sintaxis.

Comentarios y calificaciones de la guía

Si haces scroll puedes encontrar las notas de otros programadores, tú además puedes mostrar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *