我正在開發針對MS SQL Server 2008的如何在單個查詢中兩次使用內置SQL函數的結果?
我用一個case語句看起來像這樣寫的其他開發人員的SQL查詢工作:
CASE
WHEN substring(A,4,3) is null THEN '????'
WHEN substring(A,4,3) in ('000','010','018') THEN '100L'
WHEN substring(A,4,3) = '123' AND substring(A,8,3) = 'abc' THEN 'FOO'
END
在這裏,我想到的是,它是多餘的使用substring(A,4,3)
並且應該有某種方法來避免它。
我該如何重寫這個條款只能調用substring(A,4,3)
一次?
這不是一個有效的case語句,第三'WHEN'沒有相應的'THEN'。 – RedFilter
@RedFilter,我修正了!我修改了查詢中的一些敏感信息,並意外地使其無效。 –
沒有性能差異。引擎實際上並沒有執行那3次。優化器只需要執行一次。優化此聲明沒有用處。對此的任何替代方法只會使您的代碼不易讀。 –