存储过程动态/通用在哪里

时间:2013-08-27 15:06:40

标签: sql stored-procedures where-clause

我知道这个问题有几个答案,但我认为它们不适合我的需要所以这就是我的问题

基于此SQL Fiddle我将向您解释我想要实现的目标。

你如何看待它只是一个简单的人员表,所以现在我想通过他的身份得到一个人,所以我必须写一个简单的查询SELECT * FROM Persons WHERE PersonID =@PersonID;让他现在可以做任何可能的组合我将为此表获取大量存储过程

所以这是我的问题如何创建一个将所有这些功能合二为一的存储过程。这样我就可以在这里给LastName'施密特',并获得所有施密特。而不是向她询问她在纽约的所有保罗的作品

让它更容易:

  • 如果此存储过程只能处理“AND”
  • 就足够了
  • 如果它选择所有列
  • 就足够了

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT * FROM Persons
WHERE PersonID  = ifnull(@PersonID,personID)
  AND LastName  = ifnull(@LastName,LastName)
  AND FirstName = ifnull(@FirstName, FirstName)
  AND Address   = ifnull(@Address,Address)
  AND City      = ifnull(@City,City)

并在SQL Fiddle上查看。