1
votes

SQL Server n'accepte pas les fractions

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


0 commentaires

3 Réponses :


0
votes

top ne fonctionne que pour l'entier

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


0 commentaires

2
votes

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.


1 commentaires

Surprenant @Gordon est bon pour un +1 à la fois sur la question et la réponse.



0
votes

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]


0 commentaires