SQL Server : check if variable is Empty or NULL for WHERE clause

后端 未结 5 1350
萌比男神i
萌比男神i 2020-12-23 20:41

When searching for a list of products, the @SearchType parameter is optional. If @SearchType is empty or NULL then it should return al

5条回答
  •  醉酒成梦
    2020-12-23 21:10

    If you can use some dynamic query, you can use LEN . It will give false on both empty and null string. By this way you can implement the option parameter.

    ALTER PROCEDURE [dbo].[psProducts] 
    (@SearchType varchar(50))
    AS
    BEGIN
        SET NOCOUNT ON;
    
    DECLARE @Query nvarchar(max) = N'
        SELECT 
            P.[ProductId],
            P.[ProductName],
            P.[ProductPrice],
            P.[Type]
        FROM [Product] P'
        -- if @Searchtype is not null then use the where clause
        SET @Query = CASE WHEN LEN(@SearchType) > 0 THEN @Query + ' WHERE p.[Type] = ' + ''''+ @SearchType + '''' ELSE @Query END   
    
        EXECUTE sp_executesql @Query
        PRINT @Query
    END
    

提交回复
热议问题