我需要创建一个这样的表..
claim amount court fee
exceed 300 15
301-500 30
501-1000 55
依旧......
我试了一下我的索赔金额是nvarchar并且法院费用是浮动的我将nvarchar转换为数字时出错。
当我在select * from table where claim amount <=250
上尝试此查询时,它会显示所有行。我对索引金额应该使用什么数据类型感到困惑,如何在检索查询时具体如何&lt; = 275 ...
答案 0 :(得分:2)
我会创建一个包含起始值和结束值的表,其中开始值为null,结束值为结束值。
像
这样的东西DECLARE @Table TABLE(
ID INT IDENTITY (1,1),
StartValue FLOAT,
EndValue FLOAT,
FeeValue FLOAT
)
INSERT INTO @Table SELECT null,300,15
INSERT INTO @Table SELECT 301,500,30
INSERT INTO @Table SELECT 501,1000,50
INSERT INTO @Table SELECT 1001,null,100
DECLARE @LookupValue FLOAT = 275
SELECT *
FROm @Table
WHERE ISNULL(StartValue, @LookupValue) <= @LookupValue
AND ISNULL(EndValue, @LookupValue) >= @LookupValue
答案 1 :(得分:0)
您应该将其拆分为2列,使其类型为int
。
MinClaimAmount和MaxClaimAmount(否则你将不得不进行字符串拆分和其他废话)。
MinClaimAmount MaxClaimAmount courtFee
0 300 15
301 500 30
501 1000 55
然后,你的SQL将是(如果你想要一个特定的行)
select * from table where MinClaimAmount <= 275 AND MaxClaimAmount >= 275