2009-07-05 16 views
5

Tengo algunos valores negativos que vuelven de una consulta. Me gustaría que solo sean cero. Cómo escribo una condición en mi consulta SQL que devuelve cero si el valor está por debajo de un cierto valor.Cómo creo un If-Then-Else en T-SQL

sol:

CASE WHEN CONVERT(float,dt.FQI53X02_101) < 1.3 THEN 0 ELSE CONVERT(float,dt.FQI53X02_101) END AS FQI53X02_101 

Respuesta

7

usted no utiliza If-Then-Else en la consulta real (se puede usar, pero eso es otra cosa) ...

Lo que se utiliza es una instrucción Case. .. Pruebe esto

Select 
    Case When [Value] < 0 Then 0 Else [Value] End 
From 
    Example 
+0

mi variación de su sugerencia es: "seleccionar * dt, Caso FQI53X02_101 Cuando <1.3 Luego 0. Else FQI53X02_101 Finalizar como hhh de "Recibo un error en el operador menor que ... no entiendo por qué – Brad

+0

Está bien, lo tengo" CASE CUANDO SE CONVIERTE (float, dt.FQI53X02_101) <1.3 THEN 0 ELSE CONVERT (float, dt.FQI53X02_101) FINALIZAR COMO FQI53X02_101 " – Brad

5

Si lo quiere como parte de su consulta, envuelva la declaración dentro de una declaración CASE. Ejemplo de MSDN está por debajo

SELECT  'Price Category' = 

     CASE 

      WHEN price IS NULL THEN 'Not yet priced' 

      WHEN price < 10 THEN 'Very Reasonable Title' 

      WHEN price >= 10 and price < 20 THEN 'Coffee Table Title' 

      ELSE 'Expensive book!' 

     END, 

    CAST(title AS varchar(20)) AS 'Shortened Title' 

FROM titles 

ORDER BY price 
2
(ABS(Value) + Value)/2 

edición - esto no funciona ahora la cuestión ha cambiado

+0

Bueno. +1 (basura para obtener 15 caracteres) – Burkhard