gpt4 book ai didi

sql-server - T-SQL 中的 VLOOKUP 式范围查找

转载 作者:行者123 更新时间:2023-12-03 02:05:54 28 4
gpt4 key购买 nike

这是一个棘手的问题,我还没有完全弄清楚。我使用的是 SQL Server 2008,并且有一个稀疏范围表,如下所示:

Range     Profession
----- ----------
0 Office Worker
23 Construction
54 Medical

然后我有另一个表,其中的值在这些范围内。我想构造一个查询,连接这两个表并给出小于或等于给定值的专业值。假设我的另一张表如下所示:

Value
29
1
60

然后我希望我的加入返回:

Value     Profession
----- ----------
29 Construction
1 Office Worker
60 Medical

(因为 29> 建筑业为 23,但医疗业为 54)

有什么方法可以让 SQL 以这种方式屈服于我的意愿,而不是实际破坏范围表以包含所有可能的值?

谢谢。

最佳答案

最简单的方法是向稀疏范围表中添加另一列。

LowRange       HighRange      Profession
0 22 Office Worker
23 53 Construction
54 999999 Medical

然后使用这样的查询来获取范围(表 2 是具有 29,1,60 值的表):

SELECT Table_2.JoinKey as Value, Table_1.Description as Profession 
FROM Table_1 INNER JOIN Table_2
ON Table_2.JoinKey => Table_1.LowRangeKey
AND Table_2.JoinKey <= Table_1.HighRangeKey;

关于sql-server - T-SQL 中的 VLOOKUP 式范围查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286888/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com