RangeID |
Floor |
Ceiling |
Rate |
1 |
0.00 |
1.99 |
5.0000 |
2 |
2.0 |
3.99 |
8.5000 |
3 |
4.0 |
6.99 |
11.0000 |
4 |
7.0 |
9.99 |
13.0000 |
NULL |
NULL |
NULL` |
NULL | |
表2
ShipmentID |
Weight |
1 |
1.30 |
2 |
2.70 |
3 |
3.00 |
4 |
1.90 |
5 |
2.40 |
6 |
3.30 |
7 |
4.70 |
NULL |
NULL | |
SQL要求對列表B中的數(shù)據(jù)執(zhí)行查詢,于是得到如圖3所見的結(jié)果集。查詢得到了你希望的結(jié)果。如上所述,這是一個直接SELECT查詢,但你可以根據(jù)自己的需要,輕易地把它變成一個存儲過程或一個參數(shù)化UDF。
ShipmentID |
Weight |
Floor |
Ceiling |
Rate |
1 |
1.30 |
0.00 |
1.99 |
5.00 |
4 |
1.90 |
0.00 |
1.99 |
5.00 |
2 |
2.70 |
2.00 |
3.99 |
8.50 |
3 |
3.00 |
2.00 |
3.99 |
8.50 |
5 |
2.40 |
2.00 |
3.99 |
8.50 |
6 |
3.30 |
2.00 |
3.99 |
8.50 |
7 |
4.70 |
4.00 |
6.99 |
11.00 | |
這種方法有無數(shù)的應(yīng)用,而且它比用WHERE謂語編寫相應(yīng)的SQL代碼要容易得多。另外,在一個計算所得稅范圍的大型查找表中,你可以對最小基數(shù)(Floor)和最大基數(shù)(Ceiling)欄編寫索引并提高性能,因為優(yōu)化器能夠利用這些索引,從而迅速找到相應(yīng)的行。