2013-04-22 10 views
6

wydaje się to proste pytanie, ale nie udało się znaleźć odpowiedź. Ja po prostu próbuje to zrobić:SQL SELECT Jeśli (a = „”) Następnie zmień wartość b

SELECT * FROM table1 
IF(columnA > 0) BEGIN 
columnB = 'Greater than 0' 
END 

nie chcę zmienić wartość w tabeli, po prostu chcę to zmienić w wyniku. Jakieś sugestie?

+0

użyć [sprawa] (http://msdn.microsoft.com/en-gb/library/ms181765.aspx) wyrażenie – Aprillion

Odpowiedz

22
SELECT ColumnA 
     , case when ColumnA > 0 then 'Greater than 0' else ColumnB END AS ColumnB 
FROM table1; 
+1

Wont to wystarczy zmienić Columna od 0 do "Większy niż 0" zamiast kolumny B? –

+1

Tyler, to tylko * sprawdzenie * kolumnyA jako warunku dla instrukcji sprawy. Druga kolumna to "Większa niż 0" lub wartość tabeli Kolumny B. Spróbuj. –

+0

Perfect !! Dziękuję Ci! –

6

To powinno działać:

SELECT columnA, IIF(columnA > 0, 'Greater than 0', columnB) 
    FROM table1; 
+0

Nie uważam, że "JEŻELI" jest funkcją, która pobiera 3 parametry. –

+0

Po prostu poinformowano mnie, że istnieje funkcja "IIF". Zakładam, że o to ci chodziło, a potem uderz się w głowę. Edytuj, więc mogę przegłosować! –

+0

@NickVaccaro - Zobacz docs [tutaj] (http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html#function_if) –

Powiązane problemy