我有一张下面结构的表格:
现在我想在mysql或sql中编写一个查询来查看某个值是否在该范围内。
实施例: 假设用户传递 11 作为输入,现在这在在SampleNo 0和13之间,因此查询应该获取 100%as SNo
同样,如果用户通过 13 ,那么它应该将 A作为SNo 获取。
如果用户输入 15 作为输入,则位于13到25个SampleNo 之间,因此查询应该
期待您的解决方案。 提前谢谢。
答案 0 :(得分:3)
SELECT SNo
from m_table
WHERE SampleNo <= @variable
ORDER BY SampleNo DESC
LIMIT 1;
答案 1 :(得分:3)
100
答案 2 :(得分:1)
您可以使用子查询:
select SNo
from your_table
where sampleNo = (select max(sampleNo)
from your_table
where sampleNo <= 11);
答案 3 :(得分:1)
这样的事情会起作用
SELECT sm1.* FROM mytable sm1 INNER JOIN
(SELECT max(SampleNo) FROM mytable WHERE SampleNo <= ?) as sm2
on sm1.SampleNo = sm2.SampleNo
注意用适当的值替换?
。
但是你的问题是标题选择值BETWEEN其他两个,因为你提供的样本显示了紧接其下方的值。
另请注意,WHERE IN(子查询)仅在SampleNo没有任何重复值时才有效。
答案 4 :(得分:0)
这是存储过程,传递一个参数,在其中,首先它找到用户输入数字的max sampleno然后,它找到相同的sno。
create procedure dbo.sample @data int
as
select SNo
from samp
where sampleno = (select max(sampleno)
from samp
where samplemo <= @data);
go
exec dbo.sample @data=11
答案 5 :(得分:0)
检查这个。
select SNo
from #TableName
where SampleNo = (select max(SampleNo)from #TableName
where SampleNo <= 15);
答案 6 :(得分:-1)
Select SNo from tblname where N > SampleNo Order By SampleNo asc Limit 1
将tblname和N替换为正确值