2009-07-05 6 views
5

J'ai des valeurs négatives qui reviennent d'une requête. Je voudrais qu'ils soient juste zéro. Comment écrire une condition dans ma requête sql qui renvoie zéro si la valeur est inférieure à une certaine valeur.Comment créer un If-Then-Else dans T-SQL

sol:

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

Répondre

7

Vous n'utilisez If-Then-Else dans la requête réelle (vous pouvez les utiliser mais c'est quelque chose d'autre) ...

Qu'est-ce que vous utilisez est une déclaration de cas. .. Essayez cette

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

ma variation de votre Sugestion est: « sélectionner dt *, cas FQI53X02_101 Lorsque <1.3 Ensuite 0. Sinon FQI53X02_101 Fin comme hhh de "Je reçois une erreur sur l'opérateur inférieur ... pas suer pourquoi – Brad

+0

D'accord je l'ai eu" CAS DE CONVERSION (float, dt.FQI53X02_101) <1,3 THEN 0 ELSE CONVERT (float, dt.FQI53X02_101) FIN COMME FQI53X02_101 " – Brad

5

Si vous le souhaitez dans le cadre de votre requête, envelopper le retour dans une instruction CASE. Exemple de MSDN est inférieure

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 

modifier - cela ne fonctionne pas maintenant la question a changé

+0

Nice. +1 (ordures pour obtenir 15 caractères) – Burkhard

Questions connexes