SQL 服务器不接受分数

SQL Server doesn't accept fraction

SQL 服务器不接受小数。我该如何做到这一点?它不接受 0.9

SELECT TOP (250000 * 0.9 / 100) 
    [FIRST], [MIDDLE], [LAST], [PHONE], [ADDRESS], [CITY], [STATE]
FROM 
    [7.Exporting].[dbo].[table1]

错误是

The number of rows provided for a TOP or FETCH clauses row count parameter must be an integer

top 仅适用于整数

SELECT TOP (any int value) [FIRST],[MIDDLE],[LAST],[PHONE],[ADDRESS],[CITY],[STATE]
      FROM [7.Exporting].[dbo].[table1]

您可以使用表达式。只去掉小数点:

select TOP (250000*9/1000) . . .

或者,有一个明确的 cast():

selectTOP (cast(250000*0.9/1000 as int)) . . . 

我很惊讶这能奏效,但它似乎如此。

由于 TOP 仅适用于整数,因此您必须转换为整数:

SELECT TOP (CAST (250000*0.9/100 AS INT)) [FIRST],[MIDDLE],[LAST],[PHONE],[ADDRESS], 
    [CITY],[STATE]
FROM [7.Exporting].[dbo].[table1]