Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana TRY_CAST() Bekerja di SQL Server

Dalam SQL Server, fungsi yang sering digunakan adalah CAST() , yang mengonversi ekspresi dari satu tipe data ke tipe data lainnya. Tetapi jika pemeran tidak berhasil, maka itu akan mengembalikan kesalahan.

Masukkan TRY_CAST() .

TRY_CAST() fungsi tidak mengembalikan kesalahan jika pemeran gagal. Sebagai gantinya, ia mengembalikan NULL .

Namun ada beberapa kesempatan, di mana itu akan mengembalikan kesalahan.

Sintaks

Sintaksnya seperti ini:

TRY_CAST ( expression AS data_type [ ( length ) ] )

Dimana expression adalah ekspresi yang akan dikonversi, data_type adalah tipe data baru, dan length adalah panjang opsional untuk tipe data baru.

Contoh 1 – Cast Berhasil

Berikut adalah contoh casting string sebagai decimal :

SELECT TRY_CAST('007' AS DECIMAL(5,2));

Hasil:

7.00

Dalam hal ini, para pemeran berhasil.

Contoh 2 – Cast Gagal dan Mengembalikan NULL

Berikut ini contoh pemeran yang gagal dan NULL dikembalikan:

SELECT TRY_CAST('Double Oh Seven!' AS DECIMAL(5,2));

Hasil:

NULL

Pemeran gagal, jadi NULL dikembalikan.

Sebagai perbandingan, inilah yang terjadi ketika kita menggunakan CAST() bukannya TRY_CAST() :

SELECT CAST('Double Oh Seven!' AS DECIMAL(5,2));

Hasil:

Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.

Contoh 3 – Cast Gagal dan Mengembalikan Error

Ada beberapa kesempatan di mana TRY_CAST() akan mengembalikan kesalahan.

Jika pemeran secara eksplisit tidak diizinkan, maka ia mengembalikan kesalahan:

SELECT TRY_CAST(10 AS xml);

Hasil:

Msg 529, Level 16, State 2, Line 1
Explicit conversion from data type int to xml is not allowed.

Informasi Lebih Lanjut

Lihat Bagaimana CAST() Bekerja di SQL Server untuk contoh konversi lainnya, dan CAST() vs TRY_CAST() di SQL Server untuk perbandingan antara CAST() dan TRY_CAST() .

Lihat dokumentasi Microsoft untuk CAST() dan CONVERT() untuk informasi lebih detail (sebagian besar juga berlaku untuk TRY_CAST() ).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara meringkas bidang waktu di SQL Server

  2. Konversi 'datetimeoffset' menjadi 'datetime' di SQL Server (Contoh T-SQL)

  3. Bagaimana DB_NAME() Bekerja di SQL Server

  4. SQL Server 2005 ROW_NUMBER() tanpa ORDER BY

  5. Dapatkan Kolom yang Mendasari Tampilan Berdasarkan Kumpulan Hasil-nya