有關SQL的一些小資訊

有關SQL的一些小資訊

早前在工作上做一些有關報表的工作,當中有了一些對SQL操作的概念更新
現假設我有一個List作Filtering的工作,而根據這個List內的每個項目,我們都需要從DB中取出相關的資料。
一開始的時候我所用的方法是寫一條查詢的Script,以這個List當中的項目為Value去查詢,但這個方法將會使用大量的Loop來完成,同時也使用了過多的時間。
後來,進行了一次的更新,這次我把List中的每個Item的Key串連起來為一條String傳入DB,在於DB中拆開String同時用Temp Table儲存起來。這樣的做法減少了大量的資源使用及時間。
再一次的檢驗後,再把Script中的大量"LIKE"比較換成"=",在這"LIKE"所用的CPU時間較長及效率較低。

另外在此提一下,在SQL中對行對比的時候,SQL預設的是Case Insensitive的,即是不會對字元的大小寫對行區分,也代表'a' == 'A'的。
(在新建Database的時候也可選擇有關的設定)
有興趣知道更多的設定可在DB中以下句查詢或查看Microsoft官方的文檔
​SELECT name, description FROM fn_helpcollations();