Why would someone use WHERE 1=1 AND in a SQL clause?

后端 未结 19 2232
甜味超标
甜味超标 2020-11-22 07:08

Why would someone use WHERE 1=1 AND in a SQL clause (Either SQL obtained through concatenated strings, either view definition)

I\'ve

19条回答
  •  心在旅途
    2020-11-22 07:31

    This is useful in a case where you have to use dynamic query in which in where clause you have to append some filter options. Like if you include options 0 for status is inactive, 1 for active. Based from the options, there is only two available options(0 and 1) but if you want to display All records, it is handy to include in where close 1=1. See below sample:

    Declare @SearchValue    varchar(8) 
    Declare @SQLQuery varchar(max) = '
    Select [FirstName]
        ,[LastName]
        ,[MiddleName]
        ,[BirthDate]
    ,Case
        when [Status] = 0 then ''Inactive''
        when [Status] = 1 then ''Active''
    end as [Status]'
    
    Declare @SearchOption nvarchar(100)
    If (@SearchValue = 'Active')
    Begin
        Set @SearchOption = ' Where a.[Status] = 1'
    End
    
    If (@SearchValue = 'Inactive')
    Begin
        Set @SearchOption = ' Where a.[Status] = 0'
    End
    
    If (@SearchValue = 'All')
    Begin
        Set @SearchOption = ' Where 1=1'
    End
    
    Set @SQLQuery = @SQLQuery + @SearchOption
    
    Exec(@SQLQuery);
    

提交回复
热议问题