Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Effiziente ISNUMERIC()-Ersetzungen auf SQL Server?

Sie können die T-SQL-Funktionen TRY_CAST() oder TRY_CONVERT() verwenden, wenn Sie SQL Server 2012 ausführen, wie Bacon Bits in den Kommentaren erwähnt:

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

Wenn Sie SQL 2008 R2 oder älter verwenden, müssen Sie eine .NET CLR-Funktion verwenden und System.Decimal.TryParse().

umschließen