sql - 如何使用 sql 查询获取范围落在哪个条件中?
问题描述
代码:
IF OBJECT_ID('tempdb..#TempMaster','U') IS NOT NULL
DROP TABLE #TempMaster
IF OBJECT_ID('tempdb..#TempTransaction','U') IS NOT NULL
DROP TABLE #TempTransaction
CREATE TABLE #TempMaster
(
Sno INT IDENTITY(1,1),
RangeDesc VARCHAR(100),
RangeFromValue INT,
RangeToValue INT
)
CREATE TABLE #TempTransaction
(
Sno INT IDENTITY(1,1),
[Values] INT
)
INSERT INTO #TempMaster(RangeDesc,RangeFromValue,RangeToValue)
SELECT * FROM (VALUES('Type A',1,10),('Type B',11,20),('Type C',21,30)) AS T(RangeDesc,RangeFromValue,RangeToValue)
INSERT INTO #TempTransaction([Values])
SELECT 1
UNION ALL
SELECT 15
UNION ALL
SELECT 5
SELECT * FROM #TempMaster
SELECT * FROM #TempTransaction
请任何人帮助我根据价值下降的范围获得这种解决方案。我想获取范围描述并写下查询以获取以下输出。提前致谢。
-------------------------------
sno Values RangeDesc
-------------------------------
1 1 Type A
2 15 Type B
3 5 Type A
-------------------------------
解决方案
您left join
根据范围值进行操作。
select t1.Sno, t1.[Values], t2.RangeDesc
from #TempTransaction t1
left join #TempMaster t2 on t1.[Values] between t2.RangeFromValue and t2.RangeToValue
推荐阅读
- javascript - 错误等待函数已经包含异步
- html - 我们可以设置摘要和详细信息标签,以便详细信息显示在摘要上方(而不是下方)?
- javascript - 从另一个文件中的脚本文件获取 Firebase UserID
- rcpp - dqrng 与 Rcpp 用于从正态分布和二项分布中绘图
- swift - 在 Swift for mac 中访问用户环境变量
- python - 一个洗牌然后解洗python列表的好方法
- javascript - 如何使用“加法混合”以外的混合模式使不透明度影响材质
- python - 在python中,GC如何处理mmap?
- regex - 正则表达式在 Atom 或 Sublime 中查找用乘数替换
- python - script-write dict 并将其写入文件然后加载