我正在尝试查询一个数据库,需要获取一个客户列表,其中他们的体重等于60.5。问题是60.5是一个实数,我以前从未在where子句中使用过实数进行数据库查询。
我尝试了以下代码:
SELECT Name FROM Customers WHERE Weight=60.5
SELECT Name FROM Customers WHERE Weight=cast(60.5 as real)
SELECT Name FROM Customers WHERE Weight=cast(60.5 as decimal)
SELECT Name FROM Customers WHERE Weight=convert(real,'60.5')
SELECT Name FROM Customers WHERE Weight=convert(decimal,'60.5')
这些查询返回的值为0,但在顾客表中有10行重量为60.5。
Weight
的确切类型是什么? - Dmytro ShevchenkoSELECT Name FROM Customers WHERE Weight BETWEEN 60 and 61
,您会得到什么?使用实数或浮点数的原因非常少。除非这是航天飞机的应用程序,否则实数绝对不适合表示人的体重。请改用 decimal(19,2)。 - Nick.McDermaid