2016-07-10 7 views
0

Ich habe diese Tabelle:SQL-Grund wenn sonst Bedingungen

|car |house|
|2010|2012 |
|2005|2004 |
|2003|2003 |
|2006| |

und ich brauche diese Tabelle aus, es zu schaffen:


|2010|2012 |after |
|2005|2004 |before|
|2003|2003 |after |
|2006| |x |

Fälle:
car < houseresult = vor
car>houseresult = nach
car = houseresult = nach
house ist leer ->result = x

Antwort

3

Verwendung CASE EXPRESSION:

SELECT t.car,t.house, 
     CASE WHEN t.house >= t.car THEN 'AFTER' 
      WHEN t.house < t.car THEN 'BEFORE' 
      ELSE 'x' 
     END as result 
FROM YourTable t 

EDIT: diese an einem anderen Tisch zu verbinden:

SELECT * FROM (
    SELECT t.car,t.house, 
      CASE WHEN t.house >= t.car THEN 'AFTER' 
       WHEN t.house < t.car THEN 'BEFORE' 
       ELSE 'x' 
      END as result 
    FROM YourTable t) s 
JOIN Another_Table tt 
ON(s.result = tt.Column) 
+0

mit diesem Code, den ich nur Datenausgabe erhalten mit diese neue Spalte (Ergebnis), aber wie kann ich dieser Spalte in t beitreten. Tabelle ? danke – hanznv

+0

@hanznv Umwickeln Sie es einfach mit einer anderen Abfrage .. Versuchen Sie es jetzt – sagi