⑴ 如何篩選sql字元串欄位中部分值
一、先說篩選字元串欄位中部分值的記錄。
例如我有一個KKBH(卡口編號)欄位,這是一個字典欄位(對應另一個實體表(卡口表)的編號欄位)。這個欄位的值保存所屬卡口值域{01,02,03}
本來想到的是通過or來實現,這樣需要動態生成SQL語句。
後來想到一個辦法用charindex搜索字元串的辦法。將所有的要查的卡口編號組成類似'01@02'這樣待查字元串。sql查詢時通過charindex篩選出在待查字元串里有的KKBH的記錄。
經測試使用or與使用charindex,兩者在MSSQL中執行效率差不多。
具體實現:
用戶界面查詢需求:可能搜索N個卡口的記錄(N的值域{1,所有卡口個數})。設計這個UI的形式一共三種:
一、一個多選listbox。用戶界面運行時將卡口字典表載入listbox信息。
二、兩個listbox,左邊為待選,右邊為已選,中間加兩個按鈕添加與刪除。用戶界面運行時將卡都字典表載入左邊的listbox。
三、多個Checkbox。可以在界面設計階段直接做死字典表,即有幾個卡口就話幾個checkbox。或者在程序運行根據字典表繪制動態繪制checkbox。
UI的優缺點這里不討論,我這里選擇第三種方式的動態繪制。
在查詢階段根據所選卡口生成待選字元串入:"01@02」
並將此條件傳回後台查詢服務程序
後台查詢服務里只要待查字元串作為參數傳入查詢的SQL語句中(sql片段): charindex(卡口編號,@待查字元串)。當然也可以手動生成SQL方式傳入"charindex(卡口編號,'"+待查字元串+"')".
二、模糊查詢。
使用like的模糊查詢發生效率是很低。
提高的解決辦法與:
一、用full text index 結合contains函數。全文本索引,帶了空間佔用率很高。
二、通過charindex+substring實現簡易模糊查詢。使用substring分段,charindex實現類似like '%關鍵字%'。
⑵ sql子查詢如何使用主查詢里的欄位作為篩選條件
sql子查詢使用主查詢里的欄位作為篩選條件的方法:
使用SELECT子句、GROUP BY子句、HAVING子句、ORDER BY子句中均可使用子查詢語句,較常用的是WHERE子句、HAVING子句和FROM子句。
子查詢是在一個完整的查詢語句中,嵌套不同功能的小查詢,從而完成復雜查詢的一種編寫形式。本部分主要介紹非關聯子查詢,關聯子查詢的適用場景,語句寫法,執行邏輯及相對應的注意事項。
⑶ 資料庫搜索的時候怎麼顯示我想要的部分欄位呢
你可以試試format函數,它可以將欄位的顯示格式化。比如:SELECT format('Hello %s', 'World');
⑷ SQL語句,如何將一個欄位中的一部分字元串作為條件查詢
select*
from表
wheresubstring(code,2,1)=0andsubstring(code,3,1)=0andsubstring(code,4,1)=0andsubstring(code,5,1)=0
or
select*
from表
wheresubstring(code,2,4)='0000'
⑸ excel怎麼篩選指定欄位
1、將表格中的工資水平大於3000的提取出「職稱」、「姓名」、「工資」數據。
⑹ 如何篩選資料庫某個欄位內的指定內容
自動篩選後,設置條件:
裡面選「包含」
寫上
「*A*2*」
意思是什麼只要含A和2的都會篩選出來,*不能少也不能多
⑺ 資料庫中篩選地址包含某個欄位怎麼表示
如果是利用窗體中控制項內的值來篩選,就一般在查詢條件中寫入:
=LIKE IIF(ISNULL([控制項值]),"*", [控制項值])
如果要模糊查詢,就這樣
=LIKE IIF(ISNULL([控制項值]),"*", '*'&[控制項值]&'&')
如果是其它方式,可以用比如
Dlookup("欄位名","表名或查詢名","條件")
⑻ sql 查詢中,要篩選出某個欄位的部分字元,該如何操作 例如表a,有個欄位是size.
如果都是 數字mmX數字mm的話 那就可以,這有規律,第一個數字在mm之前,第二個數字在x和mm之間你現在就是要獲取 第一個mm和X還有mm的三個位置就好了
然後就可以獲取到你想要的數字
dim index1 as integer'第一個mm的位置
dim index2 as integer''第二個mm的位置
dim index3 as integer''x的位置
dim long as integer
dim width as integer
dim size as string
size="100mmx150mm"
index1 = InStr(1, size, "mm")
long=rigt(size,index1)
index3=instr(1,size,"x")
index2=instr(1,right(size,len(size)-index3),"mm")
width=left(right(size,len(size)-index3),index2)
⑼ 我的資料庫很大,我想篩選某一欄位的某一范圍
因為數據量實在是太大,如果用ACCESS資料庫自帶表篩選功能,
對於超過100萬條字的記錄表來說其篩選演算法導致的系統開銷實在是太大了!不是一般電腦能夠負擔的。
如果你要將「欄位13」直接轉換為數字類型,同樣的道理,其產生的系統開銷也不是一般電腦所能承受的!
那麼如果你要查出文本類型「欄位13」200以上的數據,可以使用Val函數編寫一個選擇查詢,取名「查詢2「,
具體代碼如下:
SELECT [自貢---1212697].*
FROM [自貢---1212697]
WHERE (((Val([欄位13]))>=200))
ORDER BY Val([欄位13]);
然後運行(雙擊)上述查詢,你就可以非常輕松地得到你要的結果(這里使用了排序,如果不排序速度更快),
耗時幾十秒左右即可輸出你要的結果。
至於如何將欄位13、14、15轉換成數字類型,可以將下列SQL代碼保存為一個生成表查詢,取名「轉換為新表」
SELECT 欄位1, 欄位2, 欄位4, 欄位5, 欄位6, 欄位7, 欄位8, 欄位9, 欄位10, 欄位11, 欄位12,
Val(欄位13) AS 數字欄位13, Val(欄位14) AS 數字欄位14, Val(欄位15) AS 數字欄位15 INTO NewTable
FROM [自貢---1212697];
雙擊查詢「轉換為新表」,大約耗時一分鍾即可完成轉換,生成的新表原來欄位13、14、15就變成數字欄位了。
⑽ 如何篩選SQL字元串欄位中部分值
如果需要篩選SQL字元串欄位中部分值 應該怎麼做呢?下面就教您篩選SQL字元串欄位中部分值的記錄的方法 供您參考
例如有一個KKBH(卡口編號)欄位 這是一個字典欄位(對應另一個實體表(卡口表)的編號欄位) 這個欄位的值保存所屬卡口值域{ }
本來想到的是通過or來實現 這樣需要動態生成SQL語句
後來想到一個辦法用charindex搜索SQL字元串的辦法 將所有的要查的卡口編號組成類似 @ 這樣待查字元串 sql查詢時通過charindex篩選出在待查SQL字元串里有的KKBH的記錄
經測試使用or與使用charindex 兩者在MSSQL中執行效率差不多
具體實現
用戶界面查詢需求 可能搜索N個卡口的記錄(N的值域{ 所有卡口個數}) 設計這個UI的形式一共三種
一 一個多選listbox 用戶界面運行時將卡口字典表載入listbox信息
二 兩個listbox 左邊為待選 右邊為已選 中間加兩個按鈕添加與刪除 用戶界面運行時將卡都字典表載入左邊的listbox
三 多個Checkbox 可以在界面設計階段直接做死字典表 即有幾個卡口就話幾個checkbox 或者在程序運行根據字典表繪制動態繪制checkbox
UI的優缺點這里不討論 我這里選擇第三種方式的動態繪制
在查詢階段根據所選卡口生成待選SQL字元串入 " @ 」
並將此條件傳回後台查詢服務程序
lishixin/Article/program/MySQL/201311/29554