以下のコードを実行しようとすると、次のエラーが発生します。
TOP句の行数は整数でなければなりません。
@constCnt変数はSMALLINTとして宣言され、@ threshはDECIMAL(6,4)として宣言されます。実行するselect (floor((@constCnt*(1+@thresh))))
と、小数点なしの整数値が返されます。
これを回避する方法はありますか?
select top (@constCnt) *
into #temp
from (
select top (floor((@constCnt*(1+@thresh)))) pt.*,
inLast = CASE WHEN lh.code IS NULL THEN 0 ELSE 1 END
from #pretemp pt
left join #last lh
on lh.code = pt.code
order by em desc ) a
order by inlast desc, emr desc, code