如果一个变量不为null,如何在查询中添加where条件

时间:2015-06-09 08:21:29

标签: sql tsql

我有这样的查询:

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

此查询有效,但现在我想添加另一个where子句,但仅当一个变量不为null时。 所以我有这些变量:

DECLARE @TipologiaReferto NVARCHAR(500)

......code to populate this variables

现在如果这个变量不为null我想在查询中添加这个条件

AND TipologiaReferto LIKE @TipologiaReferto 

2 个答案:

答案 0 :(得分:2)

这样做:

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

答案 1 :(得分:-1)

这个怎么样:

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

如果这不会触发所需的结果,因为它也不会返回TigoloigaReferto = NULL的任何数据集,那么您可能希望将条件放在JOIN语句中。

不确定这是否有效,但如何:

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