Hàm trong SQL Server 2014
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 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
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
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
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:
MaNhaCC | Tổng số lượng đặt |
C01 | 30 |
C03 | 25 |
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:
MaNhaCC | Tổng số hóa đơn |
C01 | 1 |
C02 | 2 |
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:
SoPN | Tổng tiền |
N001 | 6000000 |
N002 | 6000000 |
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ăm | Tổng số phiếu xuất |
2007 | 3 |
2016 | 1 |
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ụ:
SoPX | Số vật tư |
X001 | 1 |
X002 | 2 |
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