Estoy buscando una manera de construir sentencias de casos en una consulta de selección sql utilizando menos que y mayores que los signos. Por ejemplo, quiero seleccionar una clasificación basada en una variable:Usar signos de comparación dentro de una declaración de caso sql
DECLARE @a INT
SET @a = 0
SELECT CASE
WHEN @a < 3 THEN 0
WHEN @a = 3 THEN 1
WHEN @a > 3 THEN 2
END
me gustaría escribir como:
DECLARE @a INT
SET @a = 0
SELECT CASE @a
WHEN < 3 THEN 0
WHEN 3 THEN 1
WHEN > 3 THEN 2
END
... pero SQL no me deja utilizar el < y> signos de esta manera. ¿Hay alguna manera de que pueda hacer esto es SQL 2005, o necesito usar el código como en el primero?
La razón por la que solo deseo el código allí una vez es porque haría que el código fuera mucho más legible/mantenible y también porque no estoy seguro de si SQL Server tendrá que ejecutar el cálculo para cada sentencia CASE.
Busco una declaración de caso equivelent VB.NET:
Select Case i
Case Is < 100
p = 1
Case Is >= 100
p = 2
End Select
Tal vez no es posible en SQL y eso está bien, sólo quiero confirmar que.
El 'CASE' está trabajando como CASE o el interruptor en la mayoría de lenguajes de programación. No veo el punto de tu necesidad. –
Disculpe, el final de mi pregunta fue interrumpido. Avísame si aún no entiendes lo que intento lograr – Greg
La expresión CASE provocará un cortocircuito y evaluará los casos solo hasta que uno de los casos sea verdadero y lo haga. No creo que haya ninguna ventaja en otro enfoque. –