想做这样的一个存储过程:
有一个表people:name sex age
------------------
jack male 23
hemi male 22
lily female 23我想通过组合查询得到期望的结果。
查询条件就是输入@name、@sex 、@age三个参数,某个或多个字段可能为空。
虽然很简单,不过我想了解一下细节上的处理。(回答最好能在机器上测试通过)
先谢谢了!
有一个表people:name sex age
------------------
jack male 23
hemi male 22
lily female 23我想通过组合查询得到期望的结果。
查询条件就是输入@name、@sex 、@age三个参数,某个或多个字段可能为空。
虽然很简单,不过我想了解一下细节上的处理。(回答最好能在机器上测试通过)
先谢谢了!
无论参数传空串''或null值,都可以CREATE PROC myPROC
(
@name VARCHAR(20),
@sex VARCHAR(10),
@age INT
)
AS
SELECT * FROM people
WHERE name = ISNULL( NULLIF(@name,'') ,name)
AND sex = ISNULL( NULLIF(@sex,'') ,sex)
AND age = ISNULL( NULLIF(@age,0) ,age)
直接用
isnull就行了sex=isnull(@sex,sex)