Xử lý giá trị NULL và rỗng trong SQL Server – sql nếu null thì để trống

Bài viết này giải thích cách bạn có thể dễ dàng xử lý các giá trị NULL và rỗng trong SQL Server khi phát triển quy trình dữ liệu.

Bạn đang xem : sql nếu null thì trống

Có nhiều lần chúng ta cần xử lý NULL và “ trống ”trong SQL Server. Tuy nhiên, lưu ý rằng có sự khác biệt giữa giá trị NULL và giá trị “trống”.

Trong ví dụ này, chúng tôi sẽ xem xét các trường hợp ở trên và cách xử lý khi phát triển các quy trình dữ liệu trong SQL Server.

Tạo một bảng mẫu với một số dữ liệu

Hãy xem xét bảng sau:

 TẠO BẢNG [dbo]. [table_A]
(
[id] [int] KHÔNG ĐẦY,
[name] [varchar] (50) NULL,
CONSTRAINT [PK_table_A] ĐƯỢC ĐIỀU CHỈNH TỪ KHÓA CHÍNH ([id] ASC)
) ON [CHÍNH];
ĐI

Hãy điền vào bảng một số dữ liệu:

 CHÈN VÀO table_A (id, [name])
CÁC GIÁ TRỊ (1, 'A'), (2, 'B'), (3, ''), (4, NULL);
ĐI

Lưu ý rằng bản ghi thứ ba (id = 3) chứa một chuỗi trống cho cột “tên”.
Cũng lưu ý rằng bản ghi thứ tư (id = 4) chứa giá trị NULL cho cùng một cột.

Tăng cường cho bạn kỹ năng phát triển SQL Server!
Đăng ký Khóa học Trực tuyến của chúng tôi!

Xem khóa học trực tuyến của chúng tôi có tiêu đề “ Mẹo phát triển máy chủ SQL cơ bản dành cho nhà phát triển SQL
(giảm giá đặc biệt trong thời gian giới hạn có trong liên kết).

Nâng cao kỹ năng lập trình cơ sở dữ liệu SQL Server của bạn thông qua một bộ lớn các mẹo về T-SQL và các kỹ thuật phát triển cơ sở dữ liệu. Ngoài ra, khóa học có hơn 30 buổi biểu diễn trực tiếp!

Mẹo phát triển SQL Server cơ bản dành cho nhà phát triển SQL - Khóa học trực tuyến

Đăng ký ngay với Giảm giá! < / span>

Xác định vấn đề với giá trị NULL và rỗng

Hãy xem cách chúng tôi có thể xử lý hai trường hợp “đặc biệt” ở trên.

Trước hết, nếu chúng tôi chọn tất cả các bản ghi từ table_A, chúng tôi sẽ nhận được:

 chọn id, tên từ table_A;
ĐI 

Kết quả:

Xử lý giá trị NULL và rỗng trong SQL Server - Bài viết trên SQLNetHub của Artemakis Artemiou

Xử lý vấn đề giá trị NULL và rỗng

Sau đó, hãy cố gắng xử lý bản ghi có giá trị NULL và đặt làm giá trị mới cho chuỗi “NewValue” cho tập kết quả của câu lệnh select của chúng tôi.

SQL Server cung cấp 2 chức năng để thực hiện việc này; (i) ISNULL; và (ii) THAN.
Mặc dù hai chức năng khá giống nhau nhưng chúng vẫn có một số điểm khác biệt:

(1) ISNULL chỉ nhận hai tham số làm đầu vào; (a) biểu thức cần kiểm tra và (b) giá trị thay thế

(2) COALESCE lấy N tham số làm đầu vào (N & gt; = 2). Bằng cách có N biểu thức làm tham số đầu vào, nó trả về biểu thức đầu tiên KHÔNG ĐẦY ĐỦ. Nếu chỉ tất cả các biểu thức là NULL thì nó trả về giá trị NULL. Nó giống như một phiên bản nâng cao hơn của ISNULL.

Hãy thử xử lý tình huống trên bằng hai hàm này.

Sử dụng ISNULL

 - SỬ DỤNG ISNULL
SELECT id, ISNULL ([name], 'NewValue') FROM table_A;
ĐI

Kết quả:

Xử lý giá trị NULL và rỗng trong SQL Server - Bài viết trên SQLNetHub của Artemakis Artemiou

Sử dụng COALESCE

 - SỬ DỤNG THAN
SELECT id, COALESCE ([name], 'NewValue', 'NewValue2') FROM table_A;
ĐI

Kết quả:

Xử lý giá trị NULL và trống trong SQL Server - Bài viết trên SQLNetHub của Artemakis Artemiou

Rất tiếc, chúng ta có thể thấy rằng mặc dù đối với bản ghi có id = 4, chúng tôi đã nhận chuỗi “NewValue” thay vì NULL, bản ghi có id = 3 vẫn trả về một giá trị chuỗi trống.

Trong trường hợp này, có vẻ như các hàm ISNULL và COALESCE không ảnh hưởng đến kết quả của bản ghi thứ ba. Điều này được mong đợi vì bản ghi đó không chứa giá trị NULL mà thay vào đó là giá trị trống. Tất nhiên, một giá trị trống không thể được coi là NULL.

Vậy, chúng ta phải giải quyết vấn đề này như thế nào? Làm cách nào chúng ta có thể xử lý các giá trị chuỗi trống?

Rất tiếc, không có công thức “kỳ diệu” nào cho điều đó. Đề xuất duy nhất là không sử dụng các chuỗi trống mà hãy sử dụng các giá trị NULL thay vào đó, các giá trị này có thể được xử lý bởi các hàm ISNULL, NULLIF và COALESCE.

Giới thiệu một chức năng tùy chỉnh để xử lý giá trị rỗng và rỗng

Ngoài ra, bạn luôn có thể tạo hàm có giá trị vô hướng do người dùng xác định của riêng mình để có thể giải quyết vấn đề về các giá trị chuỗi trống. Trong ví dụ của tôi, tôi đã tạo hàm sau và gọi nó là IsEmpty:

 TẠO CHỨC NĂNG isEmpty
(
- Tham số đầu vào
@input dưới dạng varchar (250),
@newValue varchar (250)
)
- Tham số đầu ra
RETURNS varchar (250)
BẰNG 
BẮT ĐẦU

- Đầu tiên xử lý trường hợp giá trị đầu vào là NULL
Khai báo @inputFiltered dưới dạng varchar (250)
set @ inputFiltered = ISNULL (@input, '')

- Logic chính ở đây
QUAY LẠI (case rtrim (ltrim (@inputFiltered)) when '' then rtrim (ltrim (@newValue)) else rtrim (ltrim (@inputFiltered)) end)
CHẤM DỨT
ĐI

Hàm của tôi nhận hai tham số đầu vào; (a) chuỗi đầu vào và (b) chuỗi thay thế.

Sau đó, bằng cách sử dụng kết hợp hàm ISNULL và câu lệnh CASE, nó sẽ xử lý cả giá trị chuỗi NULL và EMPTY. Mặc dù vậy, hàm do người dùng định nghĩa ở trên chỉ xử lý các chuỗi chứ không phải bất kỳ biểu thức nào khác.

Bây giờ, nếu chúng ta thử chạy hàm IsEmpty cho cùng một ví dụ, chúng ta sẽ nhận được như sau:

 SELECT id, dbo.isEmpty ([name], 'NewValue') FROM table_a;
ĐI

Kết quả:

Xử lý giá trị NULL và rỗng trong SQL Server - Bài viết trên SQLNetHub của Artemakis Artemiou

Chà, tôi đoán vậy thôi! 🙂

Bạn có thể tìm thêm thông tin về các hàm SQL Server tích hợp sẵn đề cập ở trên xử lý NULL trên các liên kết Thư viện MSDN sau: ISNULL , NULLIF , COALESCE .

Các Khóa học Trực tuyến Nổi bật:

Artemakis Artemiou là Kiến trúc sư SQL Server Cao cấp, Tác giả, MVP Nền tảng Dữ liệu Microsoft 9 lần (2009-2018). Ông có hơn 15 năm kinh nghiệm trong ngành CNTT với nhiều vai trò khác nhau. Artemakis là người sáng lập SQLNetHub {EssentialDevTips.com} . Artemakis là người tạo ra các công cụ phần mềm nổi tiếng Snippets Generator DBA Security Advisor . Ngoài ra, anh ấy còn là tác giả của nhiều sách điện tử trên SQL Server. Artemakis hiện là Chủ tịch của Nhóm người dùng .NET Síp (CDNUG) và Lãnh đạo Quốc gia của Hiệp hội .NET Quốc tế cho Síp (INETA). Hơn nữa, Artemakis dạy về Udemy , bạn có thể xem các khóa học của anh ấy tại đây .


Xem thêm những thông tin liên quan đến chủ đề sql nếu null thì để trống

Different ways to replace NULL in sql server – Part 15

alt

  • Tác giả: kudvenkat
  • Ngày đăng: 2012-08-19
  • Đánh giá: 4 ⭐ ( 6806 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: In this video we will learn about the different ways to replace NULL values in sql server.
    1. ISNULL() function
    2. CASE statement
    3. COALESCE() function

    Text version of the video
    http://csharp-video-tutorials.blogspot.com/2012/08/different-ways-to-replace-null-in-sql.html

    Healthy diet is very important both for the body and mind. If you like Aarvi Kitchen recipes, please support by sharing, subscribing and liking our YouTube channel. Hope you can help.
    https://www.youtube.com/channel/UC7sEwIXM_YfAMyonQCrGfWA/?sub_confirmation=1

    Slides
    http://csharp-video-tutorials.blogspot.com/2013/08/part-15-different-ways-to-replace-null.html

    All SQL Server Text Articles
    http://csharp-video-tutorials.blogspot.com/p/free-sql-server-video-tutorials-for.html

    All SQL Server Slides
    http://csharp-video-tutorials.blogspot.com/p/sql-server.html

    All Dot Net and SQL Server Tutorials in English
    https://www.youtube.com/user/kudvenkat/playlists?view=1&sort=dd

    All Dot Net and SQL Server Tutorials in Arabic
    https://www.youtube.com/c/KudvenkatArabic/playlists

NULLIF trong SQL Server

  • Tác giả: comdy.vn
  • Đánh giá: 5 ⭐ ( 2047 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong hướng dẫn này, bạn sẽ học cách sử dụng biểu thức NULLIF trong SQL Server để trả về NULL nếu đối số đầu tiên bằng đối số thứ hai.

[Tự học SQL] Tìm hiểu về giá trị NULL và hàm IFNULL(), ISNULL(), COALESCE(), and NVL() trong SQL

  • Tác giả: cafedev.vn
  • Đánh giá: 4 ⭐ ( 7659 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này cafedev chia sẻ cho ace về cách sử dụng giá trị NULL và hàm IFNULL(), ISNULL(), COALESCE(), and NVL() trong SQL để lấy ra dữ liệu theo ý muốn của mình.

Điều kiện IS NULL trong SQL Server

  • Tác giả: quantrimang.com
  • Đánh giá: 4 ⭐ ( 8694 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Điều kiện IS NULL được dùng để kiểm tra giá trị NULL trong SQL Server.

Giá trị NULL trong SQL

  • Tác giả: vietjack.com
  • Đánh giá: 3 ⭐ ( 2958 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Giá trị NULL trong SQL – Học SQL cơ bản nâng cao. Học SQL trực tuyến theo các bước từ Khái niệm về database, Cú pháp SQL, Truy vấn SELECT, Truy vấn INSERT, Lệnh DELETE, Truy vấn UPDATE, Ràng buộc (Constraint), Truy vấn DROP, Lệnh TRUNCATE, Từ khóa DISTINCT, Mệnh đề ORDER BY, Mệnh đề GROUP BY, Mệnh đề WHERE, Sử dụng Join, Sử dụng View, Sử dụng Sequence, Transaction, Hàm xử lý, Bảng tạm, Toán tử.

Từ chuyện “Ăn gì cũng được” của chị em phụ nữ lại nghĩ về NULL trong SQL

  • Tác giả: datapot.vn
  • Đánh giá: 4 ⭐ ( 7589 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: “Ăn gì cũng được” và NULL trong SQL, khi nói về 2 thứ có vẻ chẳng liên quan nhưng lại giống nhau đến lạ. Không tin ư? Cùng đọc phía dưới nhé.

Giá trị Null trong SQL

  • Tác giả: gnv.edu.vn
  • Đánh giá: 4 ⭐ ( 7326 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Giá trị Null trong SQL Server thường là không có giá trị hoặc không biết. Nhiều bạn thường nhầm lẫn Null với Không có giá trị hoặc 0 nhưng thực ra hai cái các

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách tạo liên kết Mailto - html mailto liên kết chủ đề