2009年8月11日 星期二

SQL查詢式 查詢陣列值相符資料及照陣列值排序

在寫程式時,喜歡把一些多重屬性key值放在一個陣列字串之中,之後讀取資料的時候,可以拿出來用,在存的過程中,又可以把順序記錄下來。如 : 1,6,3,
在實做過程中 有發生,用in 的方式,查 1的時候,把 1 , 13 , 131 三個值都查出來,後來,有用二個查詢式可以處理,但是,覺得,這樣子的查詢式有點麻煩。
所以,我就改用 (1),(6),(3),的方式存查,在查的時候,就用 (1)去查,自然就不會重覆了。
但是,在寫程式的時候,習慣字串列陣拆出來,一個數值一個數值回頭去查相對應的資料,這樣子,對資料庫的負載比較重,就想,是否可以只有一條查詢式達到我要的功能呢 ? 找了一陣子的資料,終於找到了。

select supplier_db_id,supplier_name from supplier_db where charindex('('+ convert(varchar(10),supplier_db_id) +')','(1),(6),(3),') > 0

弄出來了,開心了一陣子,後來發現,這個出現的順序,是照資料庫順序,這樣子,在出來資料,還要自行做資料處理重新排順序。再來做一個加強版的

select supplier_db_id,supplier_name from supplier_db where charindex('('+ convert(varchar(10),supplier_db_id) +')','(1),(6),(3),') > 0 ORDER BY CHARINDEX(RTRIM(supplier_db_id), '(1),(6),(3),')


這樣子就行了。

沒有留言:

張貼留言

如何用Power BI做簡單的客戶圖像

 之前本來是想寫一個從0開始,發現,好難哦,所以,以下就不說太入門的教學了。 微軟的Power BI是一個方便強大的做BI工具,桌面版的不用錢,有興趣做美美好用的報表的人,可以試試,感覺就像是進好幾階的Excel。 一、交易資料樣本下載  https://archive.ic...