这里有两个列名,一个sHeigh,一个sWeight,两个都是int型
然后我运算了一个这样的代码:
select (sWeight/(sHeight*sHeight)) as BMI
from student
where (sSex='女' and (sWeight/(sHeight*sHeight))>19) or
(sSex='男' and (sWeight/(sHeight*sHeight))>20)
就是把BMI给显示出来,BMI=体重除以身高的平方,但是首先在这段代码运算的时候我注意到得数都是0,所以没有符合BMI大于19或者20的学生,选择不出。
难道要涉及到数值类型的强制转换么?我也知道,设置的时候是INT型,按照运算的话运算出来应该是浮点型小数,但是能不能在不修改设计的情况下把浮点型的BMI显示出来呢?
不好意思刚刚看到另一篇文章就列出了解决方法。https://blog.csdn.net/Richard_dzh/article/details/51207561
把sHeight 写成 convert(decimal(18,4),sHeight),sWeight也改了就可以了