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

Cách thay thế các giá trị Null bằng Không xác định trong Câu lệnh Chọn trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 111

Tình huống:


Bạn đang làm việc với tư cách là nhà phát triển SQL Server, bạn cần truy vấn bảng dbo.Customer và thay thế các giá trị Null trong cột Name thành "Unknown Name". Bạn sẽ sử dụng hàm SQL nào để thay thế giá trị Null bằng "Tên không xác định"?


Giải pháp:

Bạn có thể sử dụng các hàm ISNULL hoặc COALESCE để thay thế Null bằng giá trị mà chúng tôi thích. Hãy tạo bảng dbo.Customer và chèn các bản ghi mẫu bằng cách sử dụng các câu lệnh dưới đây.

--Create dbo.Customer table
Create table dbo.Customer(
Id int,
Name VARCHAR(10),
Address VARCHAR(100))

--Insert records in dbo.Customer table
Insert into dbo.Customer
Values(1,'Aamir','XyZ Address')
,(2,'Raza',Null)
,(3,null,'abc address')
 
 
 
 Hãy sử dụng các hàm ISNULL hoặc COALESCE để thay thế Null bằng "Unknown Name". 
Select Id,ISNULL(Name,'Unknown Name') AS NameByISNull,
COALESCE(Name,'Unknown Name') NamebyCoalesce,
Address From dbo.Customer
 
 
Cách thay thế Null bằng Giá trị trong SQL Server - Hướng dẫn TSQL



>
 Như bạn có thể thấy rằng chúng tôi đã sử dụng ISNULL và thay thế Null bằng "Unknown Name" nhưng nó trả về "Unknown Na", nó không trả về "Unknown Name" hoàn chỉnh. Lý do, kiểu dữ liệu của một biểu thức ISNULL là kiểu dữ liệu của đầu vào đầu tiên (cột Tên) là varchar (10), có nghĩa là nó sẽ luôn trả về cho chúng ta 10 ký tự. 
Nếu bạn gặp các trường hợp như thế này, tốt hơn bạn nên sử dụng COALESCE. Kiểu dữ liệu của biểu thức COALESCE là kiểu dữ liệu của đối số đầu vào có mức độ ưu tiên kiểu dữ liệu cao nhất. Trong trường hợp của chúng tôi, "Tên không xác định" là 12 ký tự và nó đã chọn sử dụng ký tự đó thay cho kiểu dữ liệu cột Tên là varchar (10).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hoạt động CRUD với ASP.NET Core MVC, Entity Framework Core và SQL Server

  2. Chèn hàng loạt tệp CSV được trích dẫn một phần trong SQL Server

  3. Có thể chỉ định điều kiện trong Count () không?

  4. Các biến phân biệt chữ hoa chữ thường trong SQL Server

  5. Cách chèn dấu ngắt dòng trong chuỗi VARCHAR / NVARCHAR của SQL Server