I SQL Server kan du bruge ISNUMERIC()
funktion for at finde ud af, om et udtryk er numerisk eller ej.
Funktionen returnerer 1, hvis udtrykket er numerisk, og 0, hvis det ikke er det.
For at bruge denne funktion skal du blot sende værdien/udtrykket til funktionen, mens du kalder den.
Eksempel 1 – Numerisk udtryk
Her er et eksempel for at demonstrere, hvad der sker, når du sender et numerisk udtryk til denne funktion.
SELECT ISNUMERIC(250) AS Result;
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
I dette tilfælde er værdien numerisk, og resultatet er 1.
Vi får det samme resultat, selvom værdien er angivet som en streng (omsluttet af enkelte anførselstegn).
SELECT ISNUMERIC('250') AS Result;
Resultat:
+----------+ | Result | |----------| | 1 | +----------+
Eksempel 2 – Ikke-numerisk udtryk
Her er, hvad der sker, når værdien ikke er numerisk.
SELECT ISNUMERIC('Hey!') AS Result;
Resultat:
+----------+ | Result | |----------| | 0 | +----------+
Eksempel 3 – Et databaseeksempel
Her er et eksempel på brug af ISNUMERIC()
i en WHERE
klausul ved forespørgsel i en database:
USE WideWorldImportersDW; SELECT COUNT(*) AS [Count] FROM Dimension.Customer WHERE ISNUMERIC([Postal Code]) = 1;
Resultat:
+---------+ | Count | |---------| | 402 | +---------+
Dette returnerer antallet af alle rækker med et numerisk postnummer.
Uventede resultater? Når ikke-numerisk ER numerisk
Nogle karakterer behandles som værende numeriske, selv når de ikke er et tal. Dette er noget, du skal være opmærksom på, når du bruger denne funktion, ellers kan du få resultater, som du ikke forventer.
Se ikke-taltegn, der returnerer positivt, når du bruger ISNUMERIC()
for en forklaring og eksempler.