Kiểm tra xem tham số có rỗng trong thủ tục lưu sẵn mysql không

Trong bài viết này, tôi sẽ giải thích cách trả về tất cả các bản ghi khi Tham số được sử dụng để lọc kết quả trong Truy vấn SQL trống [trống] hoặc Null trong SQL Server

 

 

cơ sở dữ liệu

Ở đây tôi đang sử dụng Cơ sở dữ liệu Northwind của Microsoft. Hướng dẫn tải và cài đặt có trong bài viết sau

Tải xuống và cài đặt Cơ sở dữ liệu Northwind

 

 

Trả về tất cả các bản ghi khi Tham số trống [Trống] hoặc Null trong SQL Server Query

Có hai cách để chúng ta có thể trả về tất cả các bản ghi từ bảng khi Tham số được sử dụng để lọc kết quả trong Truy vấn SQL trống [trống] hoặc Null trong SQL Server

1. Sử dụng câu lệnh IF ELSE

Đây là phương pháp truyền thống mà hầu hết các trang web đề xuất. Trong trường hợp này, chúng tôi sẽ thêm điều kiện IF để kiểm tra xem Tham số được cung cấp là NULL hay Trống [Trống]

Quy trình được lưu trữ sau đây sử dụng tham số Tùy chọn EmployeeId. Bên trong thủ tục được lưu trữ, giá trị tham số trước tiên được kiểm tra Null bằng cách sử dụng hàm ISNULL và sau đó kiểm tra xem nó có Trống [Trống]

Nếu tham số có giá trị thì chỉ các bản ghi phù hợp sẽ được trả về, trong khi nếu tham số là Không hoặc Trống [Trống] thì tất cả các bản ghi từ bảng sẽ được trả về

TẠO THỦ TỤC Employees_GetEmployees

      @EmployeeId INT = NULL

BẰNG

BẮT ĐẦU

      ĐẶT SỐ LƯỢNG BẬT;

      NẾU BỎ QUA[@EmployeeId, ''] ''

      BẮT ĐẦU

            CHỌN Id nhân viên

                  ,Tên

                  ,Họ

            TỪ Nhân viên

            Ở ĐÂU EmployeeId = @EmployeeId

      END

      KHÔNG

      BẮT ĐẦU

            CHỌN Id nhân viên

                  ,Tên

                  ,Họ

            TỪ Nhân viên

      END

KẾT THÚC

 

 

2. Sử dụng điều kiện OR

Bây giờ dưới đây là cái mà tôi gọi là lập trình thông minh, nó thực hiện chính xác những gì thủ tục lưu sẵn ở trên làm nhưng với ít dòng mã hơn và dễ lập trình

Quy trình được lưu trữ sau đây sử dụng tham số Tùy chọn EmployeeId. Bên trong thủ tục được lưu trữ, có một câu lệnh SELECT với mệnh đề WHERE với điều kiện OR

Đầu tiên, nó so khớp tham số EmployeeId với trường EmployeeId và trong trường hợp thứ hai, nó kiểm tra tham số EmployeeId cho Null bằng cách sử dụng hàm ISNULL và sau đó kiểm tra xem nó có Trống [Trống] không

Nếu tham số có giá trị thì chỉ các bản ghi phù hợp sẽ được trả về, trong khi nếu tham số là Không hoặc Trống [Trống] thì tất cả các bản ghi từ bảng sẽ được trả về

TẠO THỦ TỤC Employees_GetEmployees

      @EmployeeId INT = NULL

BẰNG

BẮT ĐẦU

      ĐẶT SỐ LƯỢNG BẬT;

 

      CHỌN Id nhân viên

            ,Tên

            ,Họ

      TỪ Nhân viên

      Ở ĐÂU EmployeeId = @EmployeeId

      HOẶC BỎ QUA[@EmployeeId, ''] = ''

KẾT THÚC

ĐI

 

 

Kiểm tra các thủ tục được lưu trữ ở trên trong SQL Server

Dưới đây là tập hợp các giá trị tham số khác nhau được chuyển đến bộ lưu trữ và đầu ra của chúng

1. Giá trị tham số không được thông qua

EXEC Employees_GetEmployees

 

Khi giá trị tham số không được truyền thì Giá trị mặc định được đặt là Null và thủ tục được lưu trữ trả về tất cả các bản ghi

Làm cách nào để kiểm tra xem một tham số có phải là NULL trong thủ tục lưu trữ SQL không?

Bên trong thủ tục được lưu trữ, trước tiên, giá trị tham số được kiểm tra Null bằng cách sử dụng hàm ISNULL và sau đó kiểm tra xem giá trị đó có Trống [Trống]. Nếu tham số có giá trị thì chỉ các bản ghi phù hợp sẽ được trả về, trong khi nếu tham số là Không hoặc Trống [Trống] thì tất cả các bản ghi từ bảng sẽ được trả về.

Là NULL trong thủ tục được lưu trữ MySQL?

Hàm ISNULL[] của MySQL dùng để kiểm tra xem một biểu thức có phải là NULL hay không . Hàm này trả về 1 nếu biểu thức được truyền là NULL, ngược lại trả về 0. Hàm ISNULL[] chấp nhận biểu thức dưới dạng tham số và trả về một số nguyên có giá trị 0 hoặc 1 tùy thuộc vào tham số được truyền.

NULL hay rỗng trong SQL?

Trường cơ sở dữ liệu rỗng có nghĩa là không có giá trị cho một bản ghi nhất định . Nó chỉ ra sự vắng mặt của một giá trị. Trường cơ sở dữ liệu trống có nghĩa là có một giá trị cho một bản ghi nhất định và giá trị này trống [đối với giá trị chuỗi] hoặc 0 [đối với giá trị số].

Làm cách nào để kiểm tra xem trường có trống trong MySQL không?

CHỌN * TỪ yourTableName Ở ĐÂU yourSpecificColumnName LÀ NULL HOẶC yourSpecificColumnName = ' ' ; .

Chủ Đề