我有一个存储过程,可以使用文本框从数据库中提取数据。但是,我添加了另一个文本框,该文本框也为他们提供了另一个提取相同数据的选项。用户可以使用ID号或地址进行搜索。但是说我在id文本框中输入数据,而将地址文本框留空,这将拉动所有记录。不是基于输入的ID号的记录;但是,如果我将id文本框保留为空,然后输入到地址文本框,则会返回所需的一条记录。
存储过程
select id, name, age, address, telephone where
WHERE id= @id
OR ISNULL(@id, '') = '' and address= @address
OR ISNULL(@address, '') = ''
答案 0 :(得分:0)
您需要括号:
SELECT id, name, age, address, telephone
WHERE ( ISNULL(@id, '') = '' AND ISNULL(@address, '') = '' )
OR ( ISNULL(@id, '') = '' AND address = @address )
OR ( ISNULL(@address, '') = '' AND id = @id )
OR ( id = @id AND address = @address )