sql >> Databáze >  >> RDS >> Sqlserver

Efektivní náhrady ISNUMERIC() na SQL Server?

Pokud používáte SQL Server 2012, můžete použít funkce T-SQL TRY_CAST() nebo TRY_CONVERT(), jak uvádí Bacon Bits v komentářích:

SELECT CASE WHEN TRY_CAST('foo' AS INT) IS NULL THEN 0 ELSE 1 END

SELECT CASE WHEN TRY_CAST(1 AS INT) IS NULL THEN 0 ELSE 1 END

Pokud používáte SQL 2008 R2 nebo starší, budete muset použít funkci .NET CLR a zabalit System.Decimal.TryParse().



  1. Zkontrolujte, zda jsou dva výběry ekvivalentní

  2. Zastaralé funkce, které je třeba vyjmout ze sady nástrojů – část 3

  3. lokální typy kolekcí nejsou povoleny v příkazech SQL

  4. Proč SQL Server automaticky ignoruje prázdné místo na konci?