条件 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;
下面的 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;