WHERE句をCASE文で条件分岐、NULL=NULLの対策例
やりたいこと:@P_1が'-'以外の値を取る時は@P_1を採用、それ以外ならwhere句からSpeciesの条件を外す
DECLARE @P1 NVARCHAR(64) SET @P1 = '-' SELECT * FROM Iris WHERE ISNULL(Species,'N') = CASE WHEN @P1 <> '-' THEN @P1 ELSE ISNULL(Species,'N') END
やりたいこと:@P_1が'-'以外の値を取る時は@P_1を採用、それ以外ならwhere句からSpeciesの条件を外す
DECLARE @P1 NVARCHAR(64) SET @P1 = '-' SELECT * FROM Iris WHERE ISNULL(Species,'N') = CASE WHEN @P1 <> '-' THEN @P1 ELSE ISNULL(Species,'N') END