首先需要用到cast函数或者round函数
CAST (expression AS data_type)
参数说明:
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。
使用CAST函数进行数据类型转换时,在下列情况下能够被接受:
(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。
print cast("123" as int)
--输出 123
create table score --创建表score
(学号 nchar(10) not null,
课程名称 nchar(10) not null,
成绩 int not null)
insert into score --添加数据
values('01','语文',90),
('01','数学',48),
('02','语文',76),
('02','数学',56),
('03','语文',59),
('03','数学',78)
select 课程名称,MAX(成绩) 最高成绩,MIN(成绩) 最低成绩,
cast(
cast((sum(case when 成绩>=60 then 1 else 0 end)*100.0/COUNT(学号)*1.0) as float)
as nvarchar(10))+'%' 及格率
from score
group by 课程名称

或者使用round函数保留小数点后几位
select 课程名称,MAX(成绩) 最高成绩,MIN(成绩) 最低成绩,
CAST(
ROUND(cast(SUM(case when 成绩>60 then 1 else 0 end) as float)/cast(count(*) as float)*100,2)
as nvarchar(10) )
+'%' 及格率
from score
group by 课程名称

版权声明:本文为m0_46412065原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。