sql where 条件为空

例如:
select * from usertable where name=@name and page=@page
我的要求是当name为空就不作为条件,即:
select * from usertable where page=@page
当page为空不作为条件,即:
select * from usertable where name=@name

怎么用一条sql语句写出来???
 

如果我想name和page都为空,都不作为条件呢?能用一条sql语句写出来吗?

我的意思是@name、@page用户输入的值为空不作为查询条件

答:

1.

select   from  usertable 

where  ( name =@ name  and  page=@page )  or  name  is  null  or  page  is  null

2.

SELECT   FROM  usertable  WHERE  name = ISNULL ( NULLIF (@ name , '' ), name  AND  page= ISNULL ( NULLIF (@page, '' ),page)

3.

select * from tb where (@name id null or name=@name ) and (page is null or page=@page )

猜你喜欢

转载自blog.csdn.net/qq_38296051/article/details/122417549