最近坎尼出差都回不了家
在昏暗的飯店房間裡根本沒心情上來寫文章 真抱歉
Tim最近也忙於公司的事 看來大家都很忙 哈
好,今天要講的是 SQL 語法的組成
坎尼看到同事寫的 取某期間內的資料 的 Sql 語法
(起始日 和 結束日 並未強制使用者輸入)
首先 他傳了 date1 和 date2 (date1為起始日 date2為結束日)
接著寫下了下面的組成判斷式
if (date1 != "" && date2 != "")
strSql += " and date between @date1 and @date2 ";
else if (date1 != "" && date2 == "")
strSql += " and date >= @date1 ";
else if (date1 == "" && date2 != "")
strSql += " and date <= @date2 ";
ok 以上還是坎尼幫他簡化過的 Sql 語法
然後坎尼看到了所有跟日期有關的 Sql 部分 都是寫成類似上述的判斷
應該有人會說 這麼寫有錯嗎?
坎尼跟你說:沒錯啊 XDDDD (瞬間被打飛)
不是啦,坎尼是想說,這只要兩行就可以結束的東西,不必寫這麼多啦
以下是坎尼改寫過的 Sql 組裝句
strSql += (date1 != "") ? " and date >= @date1 " : "" ;
strSql += (date2 != "") ? " and date <= @date2 " : "" ;
怎樣?是不是簡潔許多? (看不懂上面寫法的人 請Google 三元運算式 )
在這種不確定是否有兩個值傳入的比較式
坎尼不會輕易動用 between (平常也沒用between的習慣就是)
當然,這也可以用於其他 數值比較 的語法中
只要條件和上述的一樣:不強制輸入值、比較值需與傳入值(複數)作比較
都可以用上述的寫法
不要再寫成 落落等 的一大堆 if else 啦 不然以後維護的人員會很痛苦 (就是坎尼)
訂閱:
張貼留言 (Atom)
Google Spreadsheet 裡用規則運算式
最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D
-
今天坎尼去上課老師講了一題很有趣的題目 所以回到家坎尼就順手試驗了一下 I. XOR (exclusive OR) XOR 是邏輯運算子之一,定義為: 當兩數的值不同才為 true,相同則為 false 其他相關說明可以參考 維基百科:XOR II. 程式 以往的做法會宣...
-
雖然到最後你還是沒留下你的名字... 今天就來介紹一下,如何用程式撰寫多維 矩陣乘法運算 首先要了解一下矩陣乘法的計算方式 (m1 x n1) * (m2 x n2) 結果會是 (m1 x n2)的矩陣 上例中的 n1 = m2 矩陣乘法位置互換結果就會不同 (大家可以直接點上方...
-
最近處理了一個 Session 變數會莫名消失的問題,麻煩的地方在於,這個舊系統在.NET 1.1的環境上活的很愉快,但是努力升級到.NET 2.0之後,在 某些狀況 下 Session 變數就會莫名的消失,導致權控子系統判斷為 Session Timeout,而將...
沒有留言:
張貼留言