連接總能檢驗等式,這真是怪事。但連接的作用并不僅限于此。我們還可以根據“小于或等于”與“大于或等于”來應用連接。我甚至還能想到一個“不等于”應用連接的例子。事實上,有許多方法建立連接,范圍連接只是其中的一種。
雖然我們都知道教科書中關系乘法的例子,但SQL Server開發人員一般還是應用連接來結合兩個表格(列表A)。
SELECT T1.*, T2.ColumnOfInterest
FROM T1, T2
這樣你得到T1行數與T2行數的積。這在概念上很有趣,但實際上你又用過多少次呢?
我們傾向于根據等式來考慮連接(T1.ColumnName = T2.ColumnName)。但是,你的表格中可能包含這樣的信息,如稅率、保險費率與運價。例如,如果你的包裹沒有1千克重,你支付的價格為x;如果它的重量在1至4千克之間,你支付的價格為y。由于它可以匹配較大的行數,所以我將其為范圍連接。
你可以用BETWEEN關鍵字來表達連接。首先,假定兩個表格(列表B)。在上述數據庫中,假定兩個表格(列表C)。列表D中包含發貨人的稅率表。列表E為發貨表格中的值。列表F中包含將所有這些值結合起來的概念。列表G中為在表格中應用概念所得到的值。
如前兩列所示,我們有個問題。重量1與ShippingRates表中的兩行對應,因此我們稍微精確一個數據的邊界。我們錯在將MinWeight和MaxWeight欄定義為整數。如果我們將它們改為浮點數,并略微調整一下MinWeight值(第二行為1.01,第三行為4.01),就可以解決問題。列表H中為得到的新結果。
你還可以將同樣的技巧應用于幾乎所有包含范圍的數據類型中,如征收所得稅的工資、保險費率年齡、重量以及人口統計分析之中。