Hotline: 0919 365 363; Email: daotao@r2s.edu.vn

Blog

Hàm trong SQL Server 2014

Hàm trong SQL Server 2014
Kiến thức hữu ích

Hàm trong SQL Server 2014

Hàm trong SQL Server 2014 là các khối mã được sử dụng để thực hiện một số tác vụ xử lý dữ liệu cụ thể và trả về kết quả. 

Các hàm này có thể được sử dụng để thực hiện các phép tính toán, chuỗi, ngày tháng, chuyển đổi dữ liệu và nhiều tác vụ khác trên cơ sở dữ liệu. Để tìm hiểu rõ hơn về , hãy cùng theo dõi bài viết dưới đây của R2S nhé!

Hàm trong SQL Server 2014 có những loại nào?

Hàm trong SQL Server 2014 được chia thành hai loại. Loại thứ nhất là hàm có sẵn (built-in functions). Loại thứ hai là hàm do người dùng định nghĩa (user-defined functions).

Hàm trong SQL Server 2014
Hàm trong SQL Server 2014

Hàm trong SQL Server thuộc về cơ sở dữ liệu và bao gồm một hoặc nhiều câu lệnh SQL. Chúng được tạo ra với mục đích sử dụng lại (reuse). Hàm tự định nghĩa còn được chia thành hai loại: Scalar Functions (hàm trả về giá trị đơn) và Table-Valued Functions (hàm trả về bảng).

Scalar Functions là gì?

Một scalar function là hàm trả về một giá trị với kiểu dữ liệu được khai báo trong RETURNS lúc tạo hàm. 

Kiểu dữ liệu trả về bao gồm các kiểu dữ liệu đã được đề cập trong bài học “Tạo Table trong SQL Server 2014”, trừ các kiểu dữ liệu text, ntext, image, cursor, hoặc timestamp.

Cú pháp tạo hàm Scalar function

CREATE FUNCTION tên_hàm ([@parameter_name parameter_data_type [ = default ] [ ,...n ] ] ) 
RETURNS kiểu_dữ_liệu AS 
BEGIN 
 thân hàm 
 RETURN value 
END

Ví dụ: Bạn hãy tiến hành tạo scalar function đếm số nhân viên theo phong ban (tên phòng ban là tham số). Hàm này được tạo trong QuanLyNhanSu

CREATE FUNCTION fn_DemSoNhanVien(@TenPhong nvarchar(30)) 
RETURNS int AS 
BEGIN 
 DECLARE @ret int; 
 SELECT @ret = count(*) 
 FROM NHANVIEN 
 WHERE TenPhong = @TenPhong; 

 IF (@ret IS NULL) 
   SET @ret = 0; 

 RETURN @ret; 
END

Hàm sau khi tạo

Hàm sau khi tạo

Sử dụng hàm fn_DemSoNhanVien

Sử dụng hàm fn_DemSoNhanVien
Sử dụng hàm fn_DemSoNhanVien

Kết quả trên cho thấy, phòng IT có 2 nhân viên.

Hàm trong SQL Server 2014 – Table-Valued Functions

Trong trường hợp scalar function trả về một giá trị (single value) thì table-valued function trả về một table chứa những giá trị từ câu lệnh SELECT.

Cú pháp tạo table-valued function

CREATE FUNCTION tên_hàm ([@parameter_name parameter_data_type [ = default ] [ ,...n ] ] ) 

RETURNS TABLE AS 

RETURN 
  câu_lệnh_select;

Ví dụ: bạn hãy tạo table-valued function hiển thị danh sách nhân viên thuộc phòng ban (với tên phòng ban chính là tham số).

CREATE FUNCTION fn_DanhSachNhanVien (@TenPhong nvarchar(30)) 
RETURNS TABLE AS RETURN 
( 
 SELECT * 
 FROM NHANVIEN 
 WHERE TenPhong = @TenPhong 
);

Hàm fn_DanhSachNhanVien sau khi tạo

Hàm sau khi tạo
Hàm sau khi tạo

Sử dụng hàm fn_DanhSachNhanVien

Hàm trong SQL Server 2014
Sử dụng hàm fn_DanhSachNhanVien
Sử dụng hàm fn_DanhSachNhanVien

Hàm trong SQL Server 2014 – Bài tập thực hành

Sử dụng cơ sở dữ liệu QuanLyBanHang

Hàm trong SQL Server 2014 – Bài tập thực hành
Hàm trong SQL Server 2014 – Bài tập thực hành

Tạo các function sau

Câu 1. Viết function mang tên fn_ThongKeSLDatTheoNhaCungCap, kiểu trả về là table: dùng để lấy tổng số lượng đặt theo từng nhà cung cấp theo ví dụ sau:

MaNhaCCTổng số lượng đặt
C0130
C0325

Câu 2. Viết function mang tên fn_LayThongTinNhaCungCap, kiểu trả về là int và nhận tham số @MaNhaCC: dùng để đếm số hóa đơn của nhà cung cấp theo ví dụ sau:

MaNhaCCTổng số hóa đơn
C011
C022

Câu 3. Viết function mang tên fn_LayThongTinPhieuNhap, kiểu trả về float và nhận tham số @SoPN: dùng để tính tổng số tiền nhập của @SoPN với ví dụ sau:

SoPNTổng tiền
N0016000000
N0026000000

Câu 4. Viết function mang tên fn_LayThongTinPhieuXuat, kiểu trả về int và nhận tham số @year: dùng để đếm số phiếu xuất được lập trong năm @year. Ví dụ:

NămTổng số phiếu xuất
20073
20161

Câu 5. Viết function mang tên fn_LayThongTinVatTuTheoPhieuXuat, kiểu trả về table: dùng để đếm số vật tư theo từng phiếu xuất. Ví dụ:

SoPXSố vật tư
X0011
X0022

Kết luận

Trên đây là những thông tin hữu ích mà chúng tôi gửi đến các bạn. Mong là bài viết này sẽ giúp bạn hiểu và tạo được hàm thành công nhé!

Bài viết gốc được đăng tại: giasutinhoc.vn

Alert: You are not allowed to copy content or view source !!