我现在有一张表比如 student ,里面有两个字段 ID,name.
我实现的功能也是很简单的。
select * from student where 'name ' =?
?是要传进去的值。
我要实现的是:如果?是null,我要显示所有的记录,如果?不是null,我要显示查询的结果,大家帮我想想怎么来组织这个查询语句(不用存储过程,就用一句查询语句)
------解决方案--------------------
select * from student where name=isnull(@name,name)
--------------
好方法
------解决方案--------------------
declare @s int
set @s=null
select * from jobs where job_id=isnull(@s,job_id)
job_id job_desc min_lvl max_lvl
------ -------------------------------------------------- ------- -------
1 New Hire - Job not specified 10 10
2 Chief Executive Officer 200 250
3 Business Operations Manager 175 225
4 Chief Financial Officier 175 250
5 Publisher 150 250
6 Managing Editor 140 225
7 Marketing Manager 120 200
8 Public Relations Manager 100 175
9 Acquisitions Manager 75 175
10 Productions Manager 75 165
11 Operations Manager 75 150
12 Editor 25 100
13 Sales Representative 25 100
14 Designer 25 100
(14 row(s) affected)