Bài viết mới

[DATABASE] Xử lý kết quả truy vấn trả về NULL trong sqlsever sử dụng CONCAT_NULL_YIELDS_NULL

[DATABASE] Xử lý kết quả truy vấn trả về NULL trong sqlsever sử dụng CONCAT_NULL_YIELDS_NULL
Đăng bởi: Thảo meo - Lượt xem: 538 15:05:41, 01/07/2019DATABASE   In bài viết

Xin chào các bạn, trong bài viết hôm nay mình sẽ chia sẽ các bạn về hàm CONCAT_NULL_YIELDS_NULL trong sqlserver.

Thường khi các bạn truy vấn dữ liệu từ database sqlserver, và có nhiều dữ liệu sẽ trả về null.

CONCAT_NULL_YIELDS_NULL

Như bài trước mình đã có nói về NULL, NULL là một kiểu dữ liệu đặc biệt, khi các  bạn thao thác tính toán với null thì dữ liệu cũng trả về null.

VD: 15 + 30 + NULL => NULL (Trong câu này kết quả mình mong muốn là nó phải trả về là 45).

Thường các bạn có thể xử lý bằng cách sử dụng những từ khóa trong Sqlserver như: CASE... WHEN, hoặc hàm ISNULL() hay COALESCE().

Tuy nhiên nếu các bạn sử dụng những biểu thức như vậy, sẽ làm cho source code của mình trông dài ra và khó quản lý.

Trong bài viết này sẽ sử dụng từ khóa CONCAT_NULL_YIELDS_NULL để sử dụng, mặc định thì sqlserver nó đã được kích hoạt ON.

Nếu các bạn muốn nó trả về dữ liệu là 45, các bạn chỉ cần set về OFF trước câu truy vấn, và sau khi truy vấn xong chúng ta sẽ trả về lại ON là xong.

Cú pháp sử dụng:

— Syntax for SQL Server

SET CONCAT_NULL_YIELDS_NULL { ON | OFF }

Ví dụ 1:

SET CONCAT_NULL_YIELDS_NULL ON

Khi được set giá trị ON, thì kết quả nối chuỗi sẽ là như sau:

SELECT 'abc' + NULL => kết quả trả về là NULL

Ví dụ 2:

SET CONCAT_NULL_YIELDS_NULL OFF

Khi được set giá trị OFF, thì kết quả nối chuỗi se là như sau:

SELECT 'abc' + NULL => kết quả trả về là abc

Bên dưới là một ví dụ dùng cả ON và OFF:

PRINT 'Setting CONCAT_NULL_YIELDS_NULL ON';

GO

-- SET CONCAT_NULL_YIELDS_NULL ON and testing.

SET CONCAT_NULL_YIELDS_NULL ON;

GO SELECT 'abc' + NULL ;

GO

-- SET CONCAT_NULL_YIELDS_NULL OFF and testing.

SET CONCAT_NULL_YIELDS_NULL OFF;

GO

SELECT 'abc' + NULL;

GO

 

Thanks for watching!

 

Tags: null sqlserverconcat_null_yields_null sqlserver

BÀI VIẾT LIÊN QUAN

[DATABASE] Xử lý kết quả truy vấn trả về NULL trong sqlsever sử dụng CONCAT_NULL_YIELDS_NULL
Đăng bởi: Thảo meo - Lượt xem: 538 15:05:41, 01/07/2019DATABASE   In bài viết