我必须写一个存储过程,其中我必须根据姓氏从表中找到值,姓氏搜索条件可以是精确的,开头的或语音的。 SP会像 -Where子句中的情况?
SELECT * FROM Person
WHERE (
CASE @lastNameCriteria
WHEN 'EXACT' THEN Person.LastName = @LastName
WHEN 'BEGIN' THEN Person.LastName like @LastName
ELSE SOUNDEX(tblPerson.LastName) LIKE SOUNDEX(@lastName))
我不知道上面的查询将在SQL放弃。我不想使用动态查询,我不能使用“IF ELSE”,因为可能有一些其他标准,如FirstNameCriteria,MiddleNameCriteria,这会增加“IF ELSE”的复杂性。 请建议我该怎么做。
我将它编辑为与工作非常接近的东西 - 添加了一个单词 - END - 并删除了CASE参数和左paren。 – dkretz 2011-02-22 18:41:57
@le dorfier - 请发布一个答案,而不是**修复**问题。如果我们解决这个问题,那么答案将不再有意义,甚至是必要的! – RichardTheKiwi 2011-02-22 19:08:08