【发布时间】:2016-10-14 18:53:01
【问题描述】:
假设有一个表 t 包含以下列:代码 int,名称 nvarchar(50)。
我想在表中查询给定代码 c 的最匹配行。 “最匹配”标准(按重要性排序):
- 1) 选择 Code 匹配 c 的行
- 2) 选择 Code 大于 c 的行(但是第一个)。例如,如果 c = 4 并且 t 包含1、2、3、5、6、7,我要选择5。
- 3) 选择一行 代码小于c。例如,如果 c = 4 且 t 包含 3、2 和 1,我要选3。
代码将在存储过程中。
有人可以建议如何完成上述操作。
谢谢。
样本数据和预期结果:
1, "Name1"
2, "Name2"
4, "Name4"
5, "Name5"
If c=2, result: 2,"Name2"
If c=3, result: 4,"Name4"
if c=6, result: 5,"Name5"
【问题讨论】:
-
发布一些示例数据和预期的结果,你的尝试。
-
仍然不清楚您的输入表和输出结果集。你能提供吗?
标签: sql sql-server sql-server-2008