SQL Server中巧用另類寫法代替Like語句

iSQlServer發表於2009-02-11
提到Like語句大家都很熟悉,比如查詢使用者名稱包含有"c"的所有使用者, 我們可以用 use mydatabase

select * from table1 where username like'%c%"

以下是完成上面功能的另一種寫法:

use mydatabase

select * from table1 where charindex('c',username)>0

這種方法理論上比上一種方法多了一個判斷語句,即>0, 但這個判斷過程是最快的, 我相信80%以上的運算都是花在查詢字串及其它的運算上, 所以運用charindex函式也沒什麼大不了。用這種方法也有好處, 那就是對%,|等在不能直接用like 查詢到的字元中可以直接在這charindex中運用, 如下:

use mydatabase

select * from table1 where charindex('%',username)>0

大家還可以寫成:

use mydatabase

select * from table1 where charindex(char(37),username)>0

ASCII的字元即為%

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-548729/,如需轉載,請註明出處,否則將追究法律責任。

相關文章