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.