2012-11-21 7 views
9

Ich habe eine Tabelle, die zwei Spalten, von denen NULL sein wird und man will nicht, was ich möchte, ist zu tun, so etwas wie:SELECT nicht null Spalte aus zwei Spalten

SELECT (column1 OR column2) AS value 

Aber ich brauche um den Wert abzurufen, der nicht null ist. Ich denke, das ist wahrscheinlich eine einfache Frage, aber jede Hilfe wird geschätzt.

Antwort

23
SELECT COALESCE(column1, column2) AS value 

oder

SELECT IFNULL(column1, column2) AS value 

oder

SELECT CASE WHEN column1 IS NOT NULL THEN column1 ELSE column2 END AS value 

oder

SELECT IF(column1 IS NOT NULL, column1, column2) AS value 
+2

Ich habe viel über sql zu lernen, danke. – foochow

+1

@Foo_Chow: nicht nur über SQL, sondern über einen bestimmten MySQL-Dialekt. # 2 und # 4 sind mysql-spezifische Lösungen. Und # 1 und # 3 würden in den meisten DBMS funktionieren. – zerkms

1

In MySQL können Sie die IFNULL Funktion verwenden. In SQL Server können Sie ISNULL Funktion verwenden.

Verwandte Themen