如何重新编写where子句中使用的以下sql server case语句。这会导致性能下降。
SELECT mode,m_name from mst_mode a
WHERE
CASE @mode
WHEN 'K' THEN 'Y'
ELSE ISNULL(a.MODE, 'N')
END = CASE @mode
WHEN 'K' THEN 'Y'
ELSE @mode
END
答案 0 :(得分:3)
试试这个。
SELECT mode,
m_name
FROM mst_mode a
WHERE ( @mode = 'K' )
OR ( @mode <> 'K' and Isnull(a.MODE, 'N') = @mode )