例如:
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 )