Je dois écrire cette requête dans SQL Server: aidez-moi avec cela, merci. p> p>
4 Réponses :
declare @value float = 1
IF FLOOR(@value) <> CEILING(@value)
BEGIN
PRINT 'this is float number'
END
ELSE
BEGIN
PRINT 'this is integer number'
END
Martin, dans certaines circonstances, votre solution donne un résultat incorrect si vous rencontrez une valeur de 1234.0, par exemple. Votre code détermine que 1234.0 est un entier, ce qui est incorrect.
Ceci est un extrait plus précis: p>
if cast(cast(123456.0 as integer) as varchar(255)) <> cast(123456.0 as varchar(255)) begin print 'non integer' end else begin print 'integer' end
Pour moi 123456.0 code> est identique que 123456 code> et est un entier.
DECLARE @value FLOAT = 1.50
IF CONVERT(int, @value) - @value <> 0
BEGIN
PRINT 'this is float number'
END
ELSE
BEGIN
PRINT 'this is integer number'
END
Voir si le code ci-dessous vous aidera. Dans les valeurs ci-dessous seulement 9, 2147483647, 1234567 sont éligibles en tant qu'Éteger. Nous pouvons créer ceci comme fonction et peut utiliser ceci. p>
xxx pré> ou p> blockQuote>
xxx pré> blockquote>
Compteriez-vous la valeur «1.0» comme un entier ou un flotteur?