Состояние на SQL Запрос к серверу - PullRequest
0 голосов
/ 06 февраля 2020

Следующий запрос SQL находится на SQL Server 2017. Я хочу, чтобы значение UtenteCliente.CostoFatturazionePersonalizzato равнялось 0 или значение NULL было настроено на значение Utente.CostoFatturazione, для этого я использую приведенный ниже запрос, но результат всегда возвращает ноль.

Как я могу это сделать?

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

1 Ответ

1 голос
/ 06 февраля 2020

Вы можете использовать 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;
...