【发布时间】:2015-06-28 20:49:18
【问题描述】:
我正在为变量搜索词匹配 - @TextSearchWord
我有一个可能有 5 个值的 @SearchCriteria 变量!
根据该值,我从哪个字段中选择我必须搜索我的单词!
-所以我只需要在“WHERE”语句中级联“CASE”语句,就像在 select 语句中的其他示例一样!
SELECT COUNT(WordID) AS WordQty
FROM itinfo_QuranArabicWordsAll
WHERE (SiteID = @SiteID)
AND (QuranID = @QuranID)
AND (SuraID BETWEEN @StrtSuraID AND @EndSuraID)
AND (VerseOrder BETWEEN @StrtVerseSortOrder AND @EndVerseSortOrder)
AND (
-- here is my problem :
CASE
WHEN (@SearchCriteria = 'DictNM') THEN (WordDictNM = @TextSearchWord )
ELSE CASE
WHEN (@SearchCriteria = 'DictNMAlif') THEN (WordDictNMAlif = @TextSearchWord)
...
END
END
)
【问题讨论】:
-
我不是 100% 了解 tsql,但是,CASE 结构通常是:
CASE WHEN <condition1> THEN <result1> WHEN <condition2> THEN <condition2> ... <repeat as needed> END。也就是说,如果您对单个变量有多个值,通常 CASE 还允许:CASE <variable> WHEN <value1> THEN <result1> WHEN <value2> THEN <result2> .... END... 可能对您有用吗? -
This 可能会有所帮助。
CASE表达式可以嵌套。
标签: sql sql-server tsql