V SQL Server můžete použít ISNUMERIC()
funkce pro zjištění, zda je výraz číselný či nikoli.
Funkce vrátí 1, pokud je výraz číselný, a 0, pokud není.
Chcete-li tuto funkci použít, jednoduše předejte hodnotu/výraz funkci při jejím volání.
Příklad 1 – Číselný výraz
Zde je příklad demonstrující, co se stane, když této funkci předáte číselný výraz.
SELECT ISNUMERIC(250) AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
V tomto případě je hodnota číselná a výsledek je 1.
Dostaneme stejný výsledek, i když je hodnota poskytnuta jako řetězec (uzavřený v jednoduchých uvozovkách).
SELECT ISNUMERIC('250') AS Result;
Výsledek:
+----------+ | Result | |----------| | 1 | +----------+
Příklad 2 – Nečíselný výraz
Co se stane, když hodnota není číselné.
SELECT ISNUMERIC('Hey!') AS Result;
Výsledek:
+----------+ | Result | |----------| | 0 | +----------+
Příklad 3 – Příklad databáze
Zde je příklad použití ISNUMERIC()
v WHERE
klauzule při dotazu na databázi:
USE WideWorldImportersDW; SELECT COUNT(*) AS [Count] FROM Dimension.Customer WHERE ISNUMERIC([Postal Code]) = 1;
Výsledek:
+---------+ | Count | |---------| | 402 | +---------+
Tím se vrátí počet všech řádků s číselným poštovním směrovacím číslem.
Neočekávané výsledky? Když Nečíselné JE Číselné
Některé znaky jsou považovány za číselné, i když to nejsou čísla. To je něco, na co si musíte být vědomi při používání této funkce, jinak byste mohli získat výsledky, které neočekáváte.
Viz Nečíselné znaky, které se vrátí jako kladné při použití ISNUMERIC()
pro vysvětlení a příklady.