2009-07-05 8 views
5

Ich habe einige negative Werte von einer Abfrage zurückkommen. Ich möchte, dass sie null sind. Wie schreibe ich eine Bedingung in meine SQL-Abfrage, die Null zurückgibt, wenn der Wert unter einem bestimmten Wert ist.Wie erstelle ich ein Wenn-Dann-Sonst in T-SQL

sol:

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

Antwort

7

Sie nicht verwenden If-Then-Else in der aktuellen Abfrage (sie nutzen zu können, aber das ist etwas anderes) ...

Was Sie verwenden, ist eine Case-Anweisung. .. Versuchen Sie diese

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

meine Variation Ihrer sugestion ist: „dt select *, Fall FQI53X02_101 Wenn <1,3 Dann 0. Else FQI53X02_101 Ende als hhh von "Ich bekomme einen Fehler zurück auf dem weniger als Operator ... nicht suer warum – Brad

+0

Okay, ich habe es" CASE WHEN CONVERT (float, dt.FQI53X02_101) <1.3 DANN 0 ELSE CONVERT (float, dt.FQI53X02_101) ENDE WIE FQI53X02_101 " – Brad

5

Wenn Sie es als Teil Ihrer Abfrage möchten, wickeln Sie die Rückkehr in einer CASE-Anweisung. Beispiel von MSDN unter

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 

bearbeiten - das ist jetzt nicht mehr funktioniert die Frage hat

geändert
+0

Nice one. +1 (Müll für 15 Zeichen) – Burkhard