要如何以 SQL 的 like 命令以不分大小寫搜尋資料 |
答題得分者是:folkchen
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
Dear All, 我是用 BCB 5.0 資料庫Paradox 且不設定 Case sensitive(即不分大小寫).
當我的資料中有大小寫時(例: ABcde ).
若我用SQL 程式片段 Where Value=:Value ; 且 ParamByName("Part_Value")->AsString = "ABCDE"則一定可以找到資料.
但若要找 "abc" 部分字串則要借用 like ,
SQL 程式片段 Where Value like:Value ; 但要大小寫吻合才找的到資料(例: ABc ).
若輸入 "ABC" 則會找不到資料.
由於要維持資料的完整性,故不能以單一大寫 or 小寫 來存資料.
不知各位高手有何辦法,或有更好的意見可以提供給我. Thanks. 發表人 - erosme 於 2004/07/24 21:05:07 發表人 - erosme 於 2004/07/26 09:45:53
|
brownshui
一般會員 發表:0 回覆:18 積分:3 註冊:2004-05-01 發送簡訊給我 |
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
|
folkchen
高階會員 發表:9 回覆:232 積分:173 註冊:2003-10-09 發送簡訊給我 |
你的意思是
1.你的資料是以大小寫雜混的方式儲存
2.用SQL抓資料時不要分大小寫
是嗎 若是的話下列內容可以參考看看 因為Like找資料會分大小寫,但你不要它管資料的大小寫
所以你只要將資料轉成大寫或小寫在LIKE時讓它從中找資料就可以了
因為它只是在Where時轉換,所以不會影嚮你抓出來的資料
也不會改變資料庫中的資料 where upper(Value) like upper(:Value) 因為我用的資料庫是Oracle
所以轉大寫是用upper()
轉小寫是用lower() 我不知你的資料庫是否可以用相同的函數來轉換
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |