日期:2014-05-17  浏览次数:20451 次

sql 存储数据范围查询问题
我想实现这么个效果,在sql server 数据库表存储数据如下
 分数范围COLUMN1 等级COLUMN1 2
 0-59 不及格
 60-80 良
 81-100 优秀

在winform 操作界面 只要文本框输入一个分数,就去这个表里匹配查找这个分数在哪个范围内,然后显示等级,请问这个功能如何设计实现呢???

------解决方案--------------------
我个人建议你的分数范围最好拆分成两列,一个起始列,一个结束列,winform传入后,假设传入值为@a,你只要
SQL code
select * from 表 where @a between 起始列 and 结束列

------解决方案--------------------
探讨
如果你坚持你的设计,那么处理起来会很复杂,要对一列经行拆分、匹配等等。并且如果以后等级范围改动,你要做的东西就会很多。

------解决方案--------------------
我觉得他想要的是这样的结果:
SQL code
USE tempdb
 GO
 CREATE TABLE test
 (
     sscore    FLOAT,
     escore    FLOAT,
     class    VARCHAR(6)
 )
 INSERT INTO test
 SELECT  0,59, '不及格'  
 UNION ALL 
 SELECT  60,80, '良'
 UNION ALL 
 SELECT 81,100, '优秀'
 
 SELECT * FROM test
 
 DECLARE @a FLOAT =23.5
 SELECT @a,class
 FROM test 
 WHERE @a BETWEEN sscore AND escore

------解决方案--------------------
探讨
我觉得他想要的是这样的结果:

SQL code

USE tempdb
GO
CREATE TABLE test
(
sscore FLOAT,
escore FLOAT,
class VARCHAR(6)
)
INSERT INTO test
SELECT 0,59, '不及格'
UNION ALL……