2009-01-23 4 views
0

J'utilise SQL Server 2005 et j'ai besoin de tester si les valeurs dans une colonne dont les métadonnées ont été spécifiées comme DECIMAL (18.3) contiennent effectivement des données qui ont des valeurs à droite de la décimale point, et si oui, quelles sont ces valeurs.Afficher uniquement les valeurs à droite d'un nombre décimal

J'ai lu quelques articles qui ne traitent que de la façon de déposer les décimales ou d'arrondir les valeurs, mais pas comment afficher UNIQUEMENT ce qui est stocké à droite de la virgule décimale.

Votre aide serait grandement appréciée.

Cordialement,

Ignacio.

Répondre

1

Essayez:

SELECT a - FLOOR(a) 
FROM ... 
1
SELECT decimalnumber - FLOOR(decimalnumber) AS decimalpart 
FROM mytable 
WHERE decimalnumber - FLOOR(decimalnumber) > 0 
0

Cela peut ne pas toujours travailler comme vous attendez. Le problème se produit lorsque vous avez des nombres négatifs. Vous pouvez penser à FLOOR comme un type d'arrondi, où il arrondit toujours au nombre entier suivant. Plancher (3.14) = 3 et Plancher (-3.14) = -4. Pour obtenir la valeur d'un nombre après la virgule décimale, vous pouvez utiliser la fonction ParseName, qui fonctionnera pour les nombres positifs et négatifs.

Select ParseName(-3.9876, 1) 
Select ParseName(-3.1234, 1) 
Select ParseName(3.9876, 1) 
Select ParseName(3.1234, 1) 
+0

Salut les gars/Gals (si l'une des personnes qui ont répondu est un), Merci pour les réponses, ils me pointe dans la bonne direction. Juste une note, pour régler le problème du nombre négatif: Il suffit d'ajouter la fonction ABS() dans le mélange et le tour est joué, problemo résolu. Passez une excellente semaine! Ignacio. –

Questions connexes