条件 SQL 服务器查询

Condition on SQL Server query

下面的 SQL 查询在 SQL Server 2017 中。我想当 UtenteCliente.CostoFatturazionePersonalizzato 的值为 0 或 null 时配置 Utente.CostoFatturazione 的值,为此我使用下面的查询,但结果总是 returns null.

我该怎么做?

SQL 查询:

SELECT 
    IIF (UtenteCliente.CostoFatturazionePersonalizzato < 0
         OR UtenteCliente.CostoFatturazionePersonalizzato IS NULL, 
         Utente.CostoFatturazione, UtenteCliente.CostoFatturazionePersonalizzato) AS costo
FROM 
    Utente
INNER JOIN 
    UtenteCliente ON Utente.IdUtente = UtenteCliente.IdUtente
WHERE 
    Utente.IdUtente = 2
    AND UtenteCliente.IdCliente = 6

您可以使用 CASE 表达式代替 IIF():

SELECT (CASE WHEN ISNULL(UtenteCliente.CostoFatturazionePersonalizzato, 0) = 0
             THEN Utente.CostoFatturazione
             ELSE UtenteCliente.CostoFatturazionePersonalizzato
        END) AS costo
FROM Utente INNER JOIN 
     UtenteCliente 
     ON Utente.IdUtente = UtenteCliente.IdUtente
WHERE Utente.IdUtente = 2 AND 
      UtenteCliente.IdCliente = 6;