2012-03-26 21 views

Antwort

52

Sie benötigen den Operator ISNULL/function.

Select ISNULL(a, b) 

b wird gewählt, wenn a null ist.

Sie können auch die WHEN/THEN wählen Option, Suche in BOL. Im Wesentlichen: Sein c Switch/Case-Block entspricht SQL.

+3

MySQL entspricht IFNULL https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#function_ifnull – giorgio79

+0

und seine 'a || b in Javascript –

13

Sie können entweder die ISNULL-Funktion oder die COALESCE-Funktion verwenden. Sie beide tun ziemlich genau die gleiche Sache, aber ISNULL nimmt nur zwei Parameter und COALESCE nimmt mehrere Parameter (das Zurückbringen des ersten Nicht-null, das es trifft). Beide versuchen, die erste param, dann die zweite (und COALESCE weiter auf)

DECLARE @IAMNULL VARCHAR 
DECLARE @IAMNOTNULL VARCHAR 
SET @IAMNOTNULL = 'NOT NULL' 

SELECT ISNULL(@IAMNULL, @IAMNOTNULL) 
--Output: 'NOT NULL' 

DECLARE @IAMNULLALSO VARCHAR 

SELECT COALESCE(@IAMNULL, @IAMNULLALSO, @IAMNOTNULL) 
--Output: 'NOT NULL' 
+1

COALESCE ist cool. –

5
select COALESCE (ProgramID , InterimProgramID) as 'ProgramID' 
1
SELECT ProgramID 
    FROM a_table 
WHERE ProgramID IS NOT NULL 
UNION 
SELECT InterimProgramID AS ProgramID 
    FROM a_table 
WHERE ProgramID IS NULL; 
1

Sie können auch IFNULL Funktion

select IFNULL(ProgramId,interimId) as ProgramId 
+2

Diese Frage bezieht sich auf SQL Server und 'IFNULL' existiert nicht mit diesem DBMS, nur' ISNULL' – dominicbri7

0

Coalesce ('zzz-' + ProgramID verwenden , InterimID) als programID wird ProgramID auch dann ignorieren, wenn Sie einen Pretext-Wert haben. Es ist eine coole kleine Funktion

Verwandte Themen