declare @f int =5 select floor(@f*0.22) -- 直接可顯示結果 create table demo( id int identity(1,1), id1 int ) select * from demo insert into demo(id1) select 2 union all select 3 union all select 4 union all select 5 union all select 6 --select top (FLOOR(@f*0.23)) * from dbo.demo /* 消息 1060,級別 15,狀態 1,第 17 行 TOP 子句中的行數必須是整數。 */ select top (CAST(FLOOR(@f*0.5) AS int)) * from dbo.demo -- 這樣就能夠獲得咱們所想要的結果
貌似是floor後面的整數在top之中不可以被識別出來。ide