2015-06-09 2 views
0

У меня есть запрос, как это:Как добавить, когда условие в запросе, если один переменных не является нулевым

SELECT CodicePrenotazione, CodicePersonaFisica, Nome, Cognome, 
     Data, NomeFile, PathFile 
FROM AA_V_H_Referti H 
    INNER JOIN AA_V_ANAG_PersoneFisiche PF 
    ON H.CodicePersonaFisica = PF.CodiceFiscale 
WHERE PF.CodicePersonale = @CodicePersonale 
    AND Data >= @DataInizio 
    AND Data <= @DataFine 

Этот запрос работает, но теперь я хочу добавить еще где положение, но только если одна переменные не ноль. Так что у меня это переменные:

DECLARE @TipologiaReferto NVARCHAR(500) 

......code to populate this variables 

теперь, если эти переменные не равно нулю, я хочу добавить это условие на запрос

AND TipologiaReferto LIKE @TipologiaReferto 

ответ

2

Делают это так:

AND (TipologiaReferto LIKE @TipologiaReferto OR @TipologiaReferto IS NULL) 
-1

Как об этом:

AND (TipologiaReferto LIKE @TipologiaReferto AND @TipologiaReferto != NULL) 

, если это не вызывает требуемый результат, так как он также не вернет никаких данных для TigoloigaReferto = NULL, тогда вы можете захотеть поместить условие в оператор JOIN.

Не уверен, если это работает, но как насчет:

LEFT JOIN @TipologiaReferto AS TR 
ON H.Data = TR.TipologiaReferto