Bagaimana cara mengubah string menjadi integer menggunakan SQL query pada SQL Server 2005?
Bagaimana cara mengubah string menjadi integer menggunakan SQL query pada SQL Server 2005?
Jawaban:
Anda dapat menggunakan CAST atau CONVERT :
SELECT CAST(MyVarcharCol AS INT) FROM Table
SELECT CONVERT(INT, MyVarcharCol) FROM Table
select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
IsNumeric()
dapat menghasilkan beberapa hasil buruk. Ini akan mengembalikan BENAR untuk string "-.", Yang masih akan menyebabkan kesalahan ketika Anda mencoba untuk melemparkannya ke nomor.
Perlu diketahui juga bahwa ketika mengkonversi dari string numerik '56.72'
ke INT Anda mungkin menemukan kesalahan SQL.
Conversion failed when converting the varchar value '56.72' to data type int.
Untuk menyiasati ini lakukan saja dua orang yang bertobat sebagai berikut:
STRING -> NUMERIC -> INT
atau
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
Saat menyalin data dari TableA ke TableB, konversi tersirat, jadi Anda tidak perlu konversi kedua (jika Anda senang membulatkan ke INT terdekat):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
Dimulai dengan SQL Server 2012, Anda bisa menggunakan TRY_PARSE atau TRY_CONVERT .
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)
Coba yang ini, itu berhasil untuk saya di Athena:
cast(MyVarcharCol as integer)