程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何篩選SQL字符串字段中部分值

如何篩選SQL字符串字段中部分值

編輯:關於SqlServer

    如果需要篩選SQL字符串字段中部分值,應該怎麼做呢?下面就教您篩選SQL字符串字段中部分值的記錄的方法,供您參考。

    例如有一個KKBH(卡口編號)字段,這是一個字典字段(對應另一個實體表(卡口表)的編號字段)。這個字段的值保存所屬卡口值域{01,02,03}

    本來想到的是通過or來實現,這樣需要動態生成SQL語句。

    後來想到一個辦法用charindex搜索SQL字符串的辦法。將所有的要查的卡口編號組成類似'01@02'這樣待查字符串。sql查詢時通過charindex篩選出在待查SQL字符串裡有的KKBH的記錄。

    經測試使用or與使用charindex,兩者在MSSQL中執行效率差不多。

    具體實現:

    用戶界面查詢需求:可能搜索N個卡口的記錄(N的值域{1,所有卡口個數})。設計這個UI的形式一共三種:

    一、一個多選listbox。用戶界面運行時將卡口字典表載入listbox信息。

    二、兩個listbox,左邊為待選,右邊為已選,中間加兩個按鈕添加與刪除。用戶界面運行時將卡都字典表載入左邊的listbox。

    三、多個Checkbox。可以在界面設計階段直接做死字典表,即有幾個卡口就話幾個checkbox。或者在程序運行根據字典表繪制動態繪制checkbox。

    UI的優缺點這裡不討論,我這裡選擇第三種方式的動態繪制。

    在查詢階段根據所選卡口生成待選SQL字符串入:"01@02”

    並將此條件傳回後台查詢服務程序

    後台查詢服務裡只要待查SQL字符串作為參數傳入查詢的SQL語句中(sql片段): charindex(卡口編號,@待查字符串)。當然也可以手動生成SQL方式傳入"charindex(卡口編號,'"+待查字符串+"')".

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved