ALTER PROCEDURE [dbo].[sp_SoftwareFiltersGet] @Id INT = NULL, @Description NVARCHAR(255) = NULL, @ISOCode CHAR(1) = NULL AS BEGIN SET NOCOUNT ON; IF( @Id IS NULL) BEGIN IF NULLIF(@Description, '') IS NULL BEGIN IF NULLIF(@ISOCode, '') IS NULL BEGIN /*ALL NULLS, return Everything*/ SELECT A.Id, A.ISOCode, A.Description, A.Frequency, A.LastModified, A.LastModifiedBy, A.IsDefault FROM [dbo].[SoftwareFilters] AS A END ELSE BEGIN /*ONLY ISOCODE provided*/ SELECT A.Id, A.ISOCode, A.Description, A.Frequency, A.LastModified, A.LastModifiedBy, A.IsDefault FROM [dbo].[SoftwareFilters] AS A WHERE A.ISOCode=@ISOCode END END ELSE BEGIN /*Description provided*/ SELECT A.Id, A.ISOCode, A.Description, A.Frequency, A.LastModified, A.LastModifiedBy, A.IsDefault FROM [dbo].[SoftwareFilters] AS A WHERE A.Description=@Description END END ELSE BEGIN /*Id provided*/ SELECT A.Id, A.ISOCode, A.Description, A.Frequency, A.LastModified, A.LastModifiedBy, A.IsDefault FROM [dbo].[SoftwareFilters] AS A WHERE A.Id=@Id END END