天天看點

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] %' 就可以了, % 比對多個字元, _ 比對一個字元,自己往上套,查下幫助。