Asp.net 它比所有提到的都大。您没有在需求中指定它。如果数量更大,那会是什么?@Arbaaz当数量更大时,你想返回什么?+1这似乎是正确的答案。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。 ID| Category

Asp.net 它比所有提到的都大。您没有在需求中指定它。如果数量更大,那会是什么?@Arbaaz当数量更大时,你想返回什么?+1这似乎是正确的答案。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。 ID| Category,asp.net,sql,sql-server,tsql,Asp.net,Sql,Sql Server,Tsql,它比所有提到的都大。您没有在需求中指定它。如果数量更大,那会是什么?@Arbaaz当数量更大时,你想返回什么?+1这似乎是正确的答案。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。 ID| Category| Amount ------------------------ 1 | Size 1 | 50000.00 2 | Size 2 | 100000.00 3 | Size 3 | 500000.00 SELECT TOP 1 *


它比所有提到的都大。您没有在需求中指定它。如果数量更大,那会是什么?@Arbaaz当数量更大时,你想返回什么?+1这似乎是正确的答案。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。我自己也找到了另一条路。
ID| Category| Amount
------------------------
1 | Size 1  | 50000.00
2 | Size 2  | 100000.00
3 | Size 3  | 500000.00
SELECT  TOP 1 *
FROM    @Table
WHERe   Amount >= @Val
ORDER BY Amount
SELECT CATEGORY
FROM YourTable
WHERE AMOUNT = (SELECT MAX(AMOUNT)
                FROM YourTable
                WHERE AMOUNT <= YourValue)
public class TesteStackOverflow
{
    public TesteStackOverflow(decimal amout)
    {
        List<testTable> list = new List<testTable>();
        list.Add(new testTable { Id = 1, Category = "Size 1", Amount = 50000 });
        list.Add(new testTable { Id = 2, Category = "Size 2", Amount = 100000 });
        list.Add(new testTable { Id = 3, Category = "Size 3", Amount = 500000 });


        var r = (from n in list where amout <= n.Amount select n).First();

        if(r != null)
            System.Diagnostics.Debug.Print(r.Category);
        else
            System.Diagnostics.Debug.Print("Category not found");

    }
}

public class testTable
{
    public int Id { get; set; }
    public string Category { get; set; }
    public decimal Amount { get; set; }
}
if not exists(
SELECT  TOP 1 *
FROM    tbl_TicketSizeMst
WHERe   Amount >= @amt
ORDER BY Amount
)
begin
select top 1 * FROM  tbl_TicketSizeMst
end
else 
begin
SELECT  TOP 1 *
FROM    tbl_TicketSizeMst1
WHERe   Amount >= @amt
ORDER BY Amount
end
; WITH x AS (
  SELECT id
       , category
       , amount
       , Row_Number() OVER (ORDER BY amount) As sequence
  FROM   your_table
)
SELECT x.id
     , x.category
     , Coalesce(prev.amount, 0) As lower_amount
     , x.amount As upper_amount
FROM   x
 LEFT
  JOIN x As prev
    ON prev.sequence + 1 = x.sequence
id category lower_amount upper_amount
-- -------- ------------ ------------
1  Size 1        0.00     50000.00
2  Size 2    50000.00    100000.00
3  Size 3   100000.00    500000.00
SELECT category
FROM   that_view
WHERE  @your_value >  lower_amount
AND    @your_value <= upper_amount
Declare @t table(ID int, Category varchar(50), Amount float)
insert into @t
select 1 , 'Size 1', 50000.00 union all
select 2 , 'Size 2' , 100000.00 union all
select 3 , 'Size 3'  , 500000.00

Declare @input float=50000


select id,category ,amount from @t a
where a.Amount-@input=(select  min(a.Amount-@input) from @t a where a.Amount-@input>=0 )