這是一個基於性能的問題,而不是「I don't understand」或「best practice」的問題。SQLServer的子串與左右組合的相對性能
我有一個SQLServer數據庫中的varchar字段,保證長度超過7個字符。 我需要提取由varchar中第2,3,4和5個字符組成的char(4)字段。
例如,如果varchar的值爲1234567890我會查找2345部分。
在左右組合上使用子串是否有性能優勢?
SELECT SUBSTRING(account,2,4) FROM payment
或
SELECT RIGHT(LEFT(account,5),4) FROM payment
我以注意到輕微優勢右左表上有1760335條記錄,但我不知道這是由於緩存查詢或喜歡。
UPDATE 我已經做了更多的功課。看來在這種情況下,右側最終是作爲右側子字符串執行的。這是一個規則嗎?或者它只是SQLServer決定爲這個特定的貓皮膚的方式?
只有在你的情況下才能確定基準... – 2010-09-30 06:48:05