我必須寫一個存儲過程,其中我必須根據姓氏從表中找到值,姓氏搜索條件可以是精確的,開頭的或語音的。 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