假如我有一个表。表里面有一列。是成绩。那么这个成绩里面有数字。但是也有文字如成绩
80
75
65.5
作弊
95
缺考
null
0
要补考
像这样的数据我如何写语句得到除文字以外的最大成绩与最小成绩?把null与汉字都要去掉。谢谢
最大的是 95
最小的是 0
80
75
65.5
作弊
95
缺考
null
0
要补考
像这样的数据我如何写语句得到除文字以外的最大成绩与最小成绩?把null与汉字都要去掉。谢谢
最大的是 95
最小的是 0
from tb
where ISNUMERIC(成绩)=1
-- Author : liangCK 梁爱兰
-- Comment: 小梁 爱 兰儿
-- Date : 2009-11-02 19:14:38
-------------------------------------
--> 生成测试数据: @tb
DECLARE @tb TABLE (成绩 varchar(6))
INSERT INTO @tb
SELECT '80' UNION ALL
SELECT '75' UNION ALL
SELECT '65.5' UNION ALL
SELECT '作弊' UNION ALL
SELECT '95' UNION ALL
SELECT '缺考' UNION ALL
SELECT null UNION ALL
SELECT '0' UNION ALL
SELECT '要补考'--SQL查询如下:select min(成绩),max(成绩) from @tb where isnumeric(成绩)=1/*
------ ------
0 95(1 行受影响)
*/
-- Author : liangCK 梁爱兰
-- Comment: 小梁 爱 兰儿
-- Date : 2009-11-02 19:14:38
-------------------------------------
--> 生成测试数据: @tb
DECLARE @tb TABLE (成绩 varchar(6))
INSERT INTO @tb
SELECT '80' UNION ALL
SELECT '75' UNION ALL
SELECT '65.5' UNION ALL
SELECT '作弊' UNION ALL
SELECT '95' UNION ALL
SELECT '缺考' UNION ALL
SELECT null UNION ALL
SELECT '0' UNION ALL
SELECT '要补考'--SQL查询如下:select flag='最小数',成绩=min(成绩)from @tb where isnumeric(成绩)=1
union all
select '最大数',max(成绩) from @tb where isnumeric(成绩)=1/*
flag 成绩
------ ------
最小数 0
最大数 95(2 行受影响)
*/