最近坎尼出差都回不了家
在昏暗的飯店房間裡根本沒心情上來寫文章 真抱歉
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. 程式 以往的做法會宣...
-
好久沒開 Chart Control 議題了 剛好前陣子 Codeplex 出現可以輕鬆建立 Excel 檔案的 Library- NPOI 於是坎尼想說研究一下,看能不能把 Chart Control 匯出圖片到 Excel 中 沒想到只花了不到1小時就研究...
-
上個週末打開一個影片檔,發現字幕檔是中英文混合的,造成字幕吃掉畫面很大的空間, 打開字幕檔一看,果然每一段時間都有先英文後中文的字幕: 因此我想要自己作成「只有中文」&「只有英文」兩個字幕檔,但這個檔案有6418 行,如果要手動一行一行的刪除...
沒有留言:
張貼留言