Jak przekonwertować ciąg znaków na liczbę całkowitą za pomocą zapytania SQL w programie SQL Server 2005?
sql
sql-server-2005
Rahul Vyas
źródło
źródło
select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
IsNumeric()
może przynieść pewne przewrotne skutki. Zwróci TRUE dla łańcucha „-.”, Co nadal będzie powodować błąd podczas próby rzutowania go na liczbę.Należy również pamiętać, że podczas konwersji z ciągu liczbowego, tj.
'56.72'
Na INT, możesz napotkać błąd SQL.Aby to obejść, wykonaj dwie konwersje w następujący sposób:
STRING -> NUMERIC -> INT
lub
Podczas kopiowania danych z TableA do TableB konwersja jest niejawna, więc nie potrzebujesz drugiej konwersji (jeśli jesteś zadowolony z zaokrąglenia w dół do najbliższej INT):
źródło
Począwszy od SQL Server 2012, można użyć TRY_PARSE lub TRY_CONVERT .
źródło
Wypróbuj ten, zadziałał dla mnie w Atenie:
źródło