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

Cách thay thế một chuỗi nếu bản ghi là NULL trong T-SQL

Bạn có thể sử dụng COALESCE hoặc ISNULL . Đầu tiên là tiêu chuẩn và trả về NOT NULL đầu tiên đối số (hoặc NULL nếu tất cả các đối số là NULL )

SELECT COALESCE(micv.value,'Pending') as value

ISNULL chỉ bị hạn chế ở 2 đối số nhưng hiệu quả hơn trong SQL Server nếu giá trị đầu tiên được kiểm tra là đắt tiền để đánh giá (ví dụ:truy vấn con).

Một "gotcha" tiềm năng với ISNULL cần lưu ý là nó trả về kiểu dữ liệu của tham số đầu tiên, vì vậy nếu chuỗi được thay thế dài hơn kiểu dữ liệu cột sẽ cho phép, bạn sẽ cần ép kiểu.

Ví dụ:

CREATE TABLE T(C VARCHAR(3) NULL);

INSERT T VALUES (NULL);

SELECT ISNULL(C,'Unknown')
FROM T

Sẽ trả về Unk

Nhưng ISNULL(CAST(C as VARCHAR(7)),'Unknown') hoặc COALESCE cả hai sẽ hoạt động như mong muốn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tôi có được một Kế hoạch Thực thi Truy vấn trong SQL Server?

  2. SQL - chọn các bản ghi riêng biệt trong một trường với các bản ghi cao nhất từ ​​trường khác

  3. Lưu dữ liệu Trò chuyện trong cơ sở dữ liệu là một ý tưởng hay?

  4. Loại bỏ một máy chủ được liên kết trong SQL Server bằng T-SQL

  5. 5 cách lấy tên tháng ngắn từ ngày trong SQL Server