Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách TRY_CAST () hoạt động trong SQL Server

Trong SQL Server, một hàm thường được sử dụng là CAST() , chuyển đổi một biểu thức của kiểu dữ liệu này sang kiểu dữ liệu khác. Nhưng nếu quá trình truyền không thành công, thì nó sẽ trả về một lỗi.

Nhập TRY_CAST() .

TRY_CAST() hàm không trả về lỗi nếu quá trình truyền không thành công. Thay vào đó, nó trả về NULL .

Tuy nhiên, có một số trường hợp, nó sẽ trả về lỗi.

Cú pháp

Cú pháp như sau:

TRY_CAST ( expression AS data_type [ ( length ) ] )

Ở đâu expression là biểu thức để chuyển đổi, data_type là kiểu dữ liệu mới và length là độ dài tùy chọn cho kiểu dữ liệu mới.

Ví dụ 1 - Truyền thành công

Dưới đây là một ví dụ về truyền một chuỗi dưới dạng decimal :

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

Kết quả:

7.00

Trong trường hợp này, việc truyền thành công.

Ví dụ 2 - Truyền không đạt và trả về NULL

Dưới đây là một ví dụ về quá trình truyền không thành công và NULL được trả lại:

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

Kết quả:

NULL

Truyền không thành công và vì vậy NULL đã được trả lại.

Để so sánh, đây là điều xảy ra khi chúng tôi sử dụng CAST() thay vì TRY_CAST() :

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

Kết quả:

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

Ví dụ 3 - Truyền lỗi và trả về lỗi

Có một số trường hợp TRY_CAST() sẽ trả về một lỗi.

Nếu một phép ép kiểu không được phép rõ ràng, thì nó sẽ trả về một lỗi:

SELECT TRY_CAST(10 AS xml);

Kết quả:

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

Thông tin thêm

Xem Cách thực hiện CAST() Hoạt động trong SQL Server để biết thêm các ví dụ chuyển đổi và CAST() so với TRY_CAST() trong SQL Server để so sánh giữa CAST()TRY_CAST() .

Xem tài liệu của Microsoft về CAST()CONVERT() để biết thêm thông tin chi tiết (hầu hết nó cũng áp dụng cho 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. 4 cách để tìm hiểu những cột nào sẽ được trả về bởi một thủ tục được lưu trữ trong SQL Server

  2. Có thể sử dụng tổng hợp do người dùng xác định (clr) với các chức năng cửa sổ (qua) không?

  3. Cách tốt nhất để kiểm tra kết nối SQL Server theo chương trình là gì?

  4. Làm cách nào để thoát khỏi một trích dẫn duy nhất trong SQL Server?

  5. Cách lấy danh sách Ràng buộc khóa chính từ tất cả cơ sở dữ liệu trên Phiên bản SQL Server - Hướng dẫn SQL Server / TSQL Phần 60