我有这样的查询:
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
答案 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