我有一张下表
Code Thickness
TPLM 4
TP 4
TP 8
TP 12
TP 19
TPLM 8
TPLM 12
TPLM 19
在TPLM 8.5中传递以选择结果时需要的结果。该查询应该与该值做什么?
ProcessCode Thickness
TPLM 12
如果表格仅保持厚度直到19,则当我通过TPLM 30时,我需要的结果是TPLM19。该值应该与查询做什么?
ProcessCode Thickness
TPLM 19
答案 0 :(得分:5)
如果我正确理解了您的要求:
SELECT TOP 1 *
FROM mytable
WHERE Code = 'TPLM' AND Thickness >= 8.5
ORDER BY Thickness
该查询选择的第一个TPLM
记录等于或超过8.5
的厚度值。
您可以使用以下方法处理边缘情况:选择大于最大厚度值的边缘情况:
SELECT TOP 1 *
FROM mytable
WHERE Code = 'TPLM' AND
(Thickness >= @myval OR Thickness = (SELECT MAX(Thickness)
FROM mytable
WHERE Code = 'TPLM'))
ORDER BY Thickness
答案 1 :(得分:1)
据我了解
select * from #code where Thickness > 8.5 and Thickness <= 12 and code ='TPLM'
解决方案2:
declare @thickness int
, @code varchar(max)
set @i = 8.5
SELECT TOP 1 *
FROM mytable
WHERE Code = @code AND Thickness > @thickness
ORDER BY Thickness