2009年11月11日 星期三

我的查詢不怕大小寫喲~~

對自己而言,是個「大發現」~~不知道別人是否已經知道這個小技巧了~~

往往我們在SQL 下查詢語法時,
為了避免要找「3Probe」時,鍵入「3probe」會找不到資料,
於是乎,我們會針對關鍵字做二件事
txt.Text.ToLower()」,針對我們鍵入的值轉成「小寫」(當然也可以是大寫);
lower(company) like '%@keyword%'」,針對資料庫欄位資料也轉成小寫;
這樣去比對的話,「小寫對小寫」就沒問題可以找出來了~~

如今,我的大發現就是在查詢語法的欄位處,去更改它的「定序」再去比對資料,
將「定序」設成「Chinese_Taiwan_Stroke_CI_AS(忽略大小寫)」的值,
可以不管三七二十一的給它去找,
而且,這種方法,也支援我們一向害怕的「ntext」資料型態的欄位。
(因為之前用轉小寫的的方法在ntext這邊沒辦法用)

至於效能的話呢,在這邊也提供了圖片大家參考,在SQL裡面測一下試試,
多了一個轉換定序的動作,會不會耗效能呢?
圖片所示,所佔比例都是「33%」,看起來,似乎不會太佔效能
也許資料量不多測試的不完整~~請多包涵。