想做这样的一个存储过程:
有一个表people:
name sex age
------------------
jack male 23
hemi male 22
lily female 23
我想通过组合查询得到期望的结果。
[email protected]@sex [email protected],某个或多个字段可能为空。
虽然很简单,不过我想了解一下细节上的处理。(回答最好能在机器上测试通过)
先谢谢了!
------解决方案--------------------
最近经常有人问这类问题。
无论参数传空串''或null值,都可以
- SQL code
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)