我有两张桌子。
第一张表:
Name Cost
house 1 10000
house 2 5000
house 3 100
第二张表:
Type From To
A 1.00 1000.00
B 1000.10 10000.00
С 10000.10 100000.00
如何构建应该看起来像的第三个表。
Name Cost Type
house 1 10000 C
house 2 5000 B
house 3 100 A
答案 0 :(得分:1)
您可以使用:
SELECT t.*, r.Type
FROM t -- first table
LEFT JOIN r -- second table
ON t.Cost BETWEEN r.[From] AND r.[To];
的 LiveDemo
强>
答案 1 :(得分:0)
对于精度不确定的情况,例如计算或日期时间的小数,您可以使用'类型'具有单一阈值的表。
Type From
A 1.00
B 1000.10
С 10000.10
Select T1.Name, T1.Cost, Table2.Type
From
(
Select [From] Threshold, IsNull(Lead(From) Over (Order By From), (Some max value maybe 100000000)) NextThreshold
From Table2) T2
Join Table1 T1 On T1.Cost >= T2.Threshold And T1.Cost < T2.NextThreshold