2016-05-23 3 views

Antwort

3
Select 
    case when columnC = 'e-book' 
    then columnA 
    else columnB 
    end as Publisher 
from myTable; 

Sie benötigen einen Fall Aussage

ich umformatiert Show zu helfen, wie das funktioniert.

Grundsätzlich Fall ist ein Skalar (Zeile pro Zeile) IF-Anweisung

Es können mehrere Bedingungen WHEN, ähnlich wie else if sein. Die Funktion wechselt von Bedingung zu Bedingung. Wenn keine Bedingungen erfüllt sind, wird der Wert ELSE verwendet.

Es gibt einfache und Suchmasken von CASE Documentation

Einfache CASE-Ausdruck:

CASE input_expression 
    WHEN when_expression THEN result_expression [ ...n ] 
    [ ELSE else_result_expression ] 
END 

Gesucht CASE-Ausdruck:

CASE 
    WHEN Boolean_expression THEN result_expression [ ...n ] 
    [ ELSE else_result_expression ] 
END 
+0

Sind beide Antworten richtig? Dieser sieht viel mehr wie Englisch aus. – LXXIII

+0

Beide funktionieren perfekt. Es ist nur ein Stilunterschied – EoinS

+1

Das Syntaxdiagramm, das Sie zeigten, ist nicht für die Form von 'CASE', das Sie verwendeten. Sie haben keinen 'case-expression'. – Barmar

3
select case columnC when 'ebook' then columnA else columnB end as publisher 
from my_table; 
+0

wow. es ist überhaupt nicht intuitiv – LXXIII

+0

Ja, aber sollte funktionieren .. – scaisEdge

2

In MySQL Sie es wie folgt schreiben :

SELECT IF(Table.ColumnC = 'ebook', Table.ColumnA, Table.ColumnB) AS Publisher FROM Table... 

Wenn Sie mehrere Möglichkeiten haben, wählen Sie CASE..WHEN..THEN..ELSE..END.

Verwandte Themen