1. 程式人生 > >ACCESS 資料庫不支援正則表示式,如何用SQL語句查詢表中既去重複的有隻查是數字或字母的欄位!

ACCESS 資料庫不支援正則表示式,如何用SQL語句查詢表中既去重複的有隻查是數字或字母的欄位!

舉例: 筆者程式設計時發現以前編的程式在SQL Server資料庫中能正確查出要查的資料結果,當資料庫變成ACCESS時查不出資料了,上網發現是ACCESS資料庫不支援正則表示式,只能用模糊查詢查出想要的資料。

同一條SQL語句在不同資料庫裡執行情況:

SQL Server :string sql = "select distinct CM_AJBH  from T_Case_Mag where patindex('%[^0-9]%',CM_AJBH)=0 order by CM_AJBH"; // SQL server 只查出是數字的資料

ACCESS :string sql = "select distinct CM_AJBH from T_Case_Mag where CM_AJBH like'%[0-9]%' order by CM_AJBH";//ACCESS 該語句只查出是數字的資料

string sql = "select distinct CM_AJBH from T_Case_Mag where CM_AJBH like'%[0-9]%[a-z]' order by CM_AJBH";//數字和字母組合的資料

一樣的道理, 字元 用萬用字元 % 或者 _ 來代替,數字 和字母在 [ ]裡面包含範圍。 查詢 字母+字元 'like [a-z] %' 就可以了, % 匹配多個字元, _ 匹配一個字元,自己往上套,查下幫助。