existe-t-il un moyen simple de savoir si un varchar est un nombre?
Exemples:
abc123 --> pas de numéro
123 --> oui, c'est un nombre
Merci :)
existe-t-il un moyen simple de savoir si un varchar est un nombre?
Exemples:
abc123 --> pas de numéro
123 --> oui, c'est un nombre
Merci :)
ISNUMERIC ne le fera pas - il vous indique que la chaîne peut être convertie en n'importe quel type numérique, ce qui est presque toujours une information inutile à connaître. Par exemple, tous les éléments suivants sont numériques, selon ISNUMERIC :
£, $, 0d0
Si vous souhaitez vérifier les chiffres et uniquement les chiffres, une expression LIKE négative est ce que vous voulez :
not Value like '%[^0-9]%'
En utilisant SQL Server 2012+, vous pouvez utiliser les fonctions TRY_* si vous avez des besoins spécifiques. Par exemple,
-- will fail for decimal values, but allow negative values
TRY_CAST(@value AS INT) IS NOT NULL
-- will fail for non-positive integers; can be used with other examples below as well, or reversed if only negative desired
TRY_CAST(@value AS INT) > 0
-- will fail if a $ is used, but allow decimals to the specified precision
TRY_CAST(@value AS DECIMAL(10,2)) IS NOT NULL
-- will allow valid currency
TRY_CAST(@value AS MONEY) IS NOT NULL
-- will allow scientific notation to be used like 1.7E+3
TRY_CAST(@value AS FLOAT) IS NOT NULL
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.