Wie konvertiere ich eine Zeichenfolge mithilfe einer SQL-Abfrage unter SQL Server 2005 in eine Ganzzahl?
sql
sql-server-2005
Rahul Vyas
quelle
quelle
select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
IsNumeric()
kann zu perversen Ergebnissen führen. Es wird TRUE für die Zeichenfolge "-." Zurückgegeben, was immer noch einen Fehler verursacht, wenn Sie versuchen, es in eine Zahl umzuwandeln.'56.72'
Beachten Sie auch, dass beim Konvertieren von einer numerischen Zeichenfolge, dh in INT, möglicherweise ein SQL-Fehler auftritt.Um dies zu umgehen, führen Sie einfach zwei Konvertierungen wie folgt durch:
STRING -> NUMERIC -> INT
oder
Wenn Sie Daten von Tabelle A nach Tabelle B kopieren, ist die Konvertierung implizit, sodass Sie die zweite Konvertierung nicht benötigen (wenn Sie gerne auf das nächste INT abrunden möchten):
quelle
Ab SQL Server 2012 können Sie TRY_PARSE oder TRY_CONVERT verwenden .
quelle
Probieren Sie dieses aus, es hat bei mir in Athena funktioniert:
quelle