从表中选择给定数字所属的范围

时间:2016-06-09 11:54:37

标签: sql asp.net

我有下表:

Please see Image

现在我要做的是找出给定数字(假设4)属于哪个范围。然后选择相应的Trans_ChargesHandling_Charges

有任何想法如何使用asp.net做到这一点?我是一个新手,不知道如何继续。

2 个答案:

答案 0 :(得分:1)

非常不幸的是杆高度范围以这种方式存储。它会造成一些丑陋的SQL。您需要使用子串方法来提取低和高范围,然后进行BETWEEN。 假设您正在使用MSSQL:

DECLARE @nbr INT;
SET @nbr = 4;
SELECT Trans_Charges, Handling_Charges
FROM [YourTable]
WHERE @nbr BETWEEN CONVERT(INT, SUBSTRING(Pole_Height_Range,1,(CHARINDEX('-', Pole_Height_Range) - 1))) AND 
    CONVERT(INT, SUBSTRING(Pole_Height_Range,(CHARINDEX('-', Pole_Height_Range) + 1), LEN(Pole_Height_Range)));

答案 1 :(得分:0)

SELECT Trans_Charges, Handling_Charges
  FROM (SELECT Trans_Charges,
               Handling_Charges,
               CONVERT (
                  INT,
                  substring (Pole_Height_Range,
                                        1,
                                        INSTR (Pole_Height_Range, "-") - 1))
                  AS min_height,
               substring (Pole_Height_Range,
                                     INSTR (Pole_Height_Range, "-"),
                                     len (Pole_Height_Range))
                  ) as max_height from tbl where Pole_Height_Range is not null)
where 4<=max_height and 4>=min_height