夜火博客 个人的碎碎念收集箱

一句话完成SQL多条件数据库查询

例如有这么一张表:

一句话完成SQL多条件数据库查询

有时我们需要根据名字进行查询;
有时我们需要根据年龄进行查询;
有时又需要根据名字和年龄进行查询;

以前都是通过拼接sql语句完成:

declare @sql nvarchar(500)

set @sql = 'select * from table1 where 1=1'

if(not @name is null)
    set @sql = @sql + ' and name=''' + @name + ''''
if(not @age is null)
    set @sql = @sql + ' and age>' + convert(varchar,@age)

今天发现不用拼接sql语句,一句话就能完成sql多条件查询

MSSQL版:

select * from table1 where ([name]=@name or @name is null) and ([age]>@age or @age is null)

ACCESS版:

select * from table1 where (name=[@name] or isnull([@name])) and (age>[@age] or isnull([@age]))

via 木子屋

留言列表
发表评论
来宾的头像