SQL Server n'accepte pas la décimale. Comment faire pour que cela se produise? Il n'accepte pas l'erreur 0.9
SELECT TOP (250000 * 0.9 / 100) [FIRST], [MIDDLE], [LAST], [PHONE], [ADDRESS], [CITY], [STATE] FROM [7.Exporting].[dbo].[table1]
est
Le nombre de lignes fourni pour un paramètre de nombre de lignes de clauses TOP ou FETCH doit être un entier
3 Réponses :
top
ne fonctionne que pour l'entier
SELECT TOP (any int value) [FIRST],[MIDDLE],[LAST],[PHONE],[ADDRESS],[CITY],[STATE] FROM [7.Exporting].[dbo].[table1]
Vous pouvez utiliser une expression. Supprimez simplement le point décimal:
selectTOP (cast(250000*0.9/1000 as int)) . . .
Ou, ayez un cast()
:
select TOP (250000*9/1000) . . .
I ' Je suis plutôt surpris que cela fonctionne, mais il semble que cela fonctionne.
Surprenant @Gordon est bon pour un +1 à la fois sur la question et la réponse.
Puisque TOP ne fonctionne qu'avec un entier, vous devez convertir en entier:
SELECT TOP (CAST (250000*0.9/100 AS INT)) [FIRST],[MIDDLE],[LAST],[PHONE],[ADDRESS], [CITY],[STATE] FROM [7.Exporting].[dbo].[table1]