Hi, thanks for your continuous support to my blog!
Our topic today would be…. 對了,對了,這好像是中文博客哦,打住,打住
咳咳,大家應該都有聽說過 SQL 吧?嘿嘿,不知道的請面壁思過
大家都有用 Stored Procedure 吧,什麼?沒用過?面壁思過吧,hoho
那大家知道做數據庫處理程序,很大的一個要求就是組成不同的查詢表達式羅
之前一個很普遍也是很不好的做法就是 Dynamic SQL, 況且說是動態組成的 SQL 吧
隨便一個 Code 演示
a = “select * from abc where”
if xxx=xxx then
a = a+ “ where b=3"
end if
這樣如果有 N 多 FIEld 要查詢那就是一堆了,不好看,也不好改
既然用了 Stored Procedure 就可以用 Parameter 拉,例如
abcAdapter.selectcommand.parameter(“b”).value = 3
而 Stored Proc 為
select * from abc where b=@b
這樣 Fill 的時候就會那個那個了,哈哈
現在的問題是, 當有多個選擇組合,而有些條件是要有,有些是沒得,而要動態的選擇,可不是就要專門一個 function 來 return 了吧,這樣多麻煩。。。。
現在有個好辦法,可不就是COALESCE,比如
select * from abc where b=COALECE(@b, b) and c=COALECE(@c,c)
而當輸入的時候
value1=5
value2=nothing
abcAdapter.selectcommand.parameter(“b”).value = value1
abcAdapter.selectcommand.parameter(“c”).value = value2
這樣的時候就只會用 b=value1 進行選擇
換句話說,COALECE 達到的目的就是當裡面某個數值是 Null 的時候就輸出第二個數值,不然就第一個數值
Anyway, 這篇寫的比較長了,希望大家看得懂,我的中文寫作水平還有待提高呢,望大家指點,指點。。。好像還沒評論呢。。。蠻多人看的耶