0

我知道这个问题有几个答案,但我觉得没有一个适合我的需要,所以我的问题来了

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

你怎么能看到它只是一个简单的人表所以现在我想通过他的 id 来获取一个人所以我必须编写一个简单的查询SELECT * FROM Persons WHERE PersonID =@PersonID;来获取他我现在可以针对任何可能的组合执行此操作,我将获得大量的存储过程只为这张桌子

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

使它更容易:

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

1 回答 1

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上查看。

于 2013-08-27T15:18:29.440 回答