请帮助我将这段代码转换为逻辑运算符并使用'like'
而不是'='
因为我知道将case语句放在where子句上效率不高。蒂亚!这是代码。
Where
(@reftype = '0' or
(@refnum = case @reftype when 'BN' then refBN when 'C' then refC when 'O' then refO else 'n/a' end)
)
答案 0 :(得分:0)
替换
or @refnum = case @reftype when 'BN' then refBN when 'C' then refC when 'O' then refO else 'n/a' end)
带
or (@reftype = 'BN' AND @refnum = refBN)
or (@reftype = 'C' AND @refnum = refC)
or (@reftype = 'O' AND @refnum = refO)
or @refnum = 'n/a'
答案 1 :(得分:0)
您可以通过以下方式将其转换为布尔逻辑:
WHERE @reftype = '0 'OR @refnum = 'n/a'
OR (@reftype = 'BN' AND @refnum = refbn)
OR (@reftype = 'C' AND @refnum = refc)
OR (@reftype = 'O' AND @refnum = refo)
但请注意CASE
- 子句中的WHERE
本身并不低效。