VIEW
STORED PROCEDURE
CONDITION & STATEMENT
FUNCTION
TRIGGER
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Giới thiệu FUNCTION trong SQL Server

Trong phần này chúng ta sẽ tìm hiểu đến function trong SQL Server, đây là chức năng giúp ta gom các câu lệnh SQL thành một nhóm và có thể sử dụng lại nhiều lần.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Lưu ý: function hai còn gọi là hàm.

1. Function trong SQL Server là gì?

Nếu nói đến gom nhóm và sử dụng nhiều lần thì stored procedure cũng làm được, tuy nhiên procedure sẽ không có giá trị trả về, còn function thì sẽ có giá trị trả về. SQL Server cũng có rất nhiều hàm có sẵn như hàm nối chuỗi (concat), hàm tính giá trị căn bậc hai (sqrt).

Các hàm sẽ giúp đơn giản hóa chương trình và có thể sử dụng nhiều lần. Ví dụ bạn cần viết một loạt các câu lệnh SQL phức tạp lên đến hàng ngàn dòng thì có thể phân tích và chia nhỏ thành nhiều hàm 

Bài viết này được đăng tại [free tuts .net]

Cú pháp tạo hàm như sau:

CREATE FUNCTION function_name (parameter_list)
RETURN data_type AS
BEGIN
    statements
    RETURN value
END

Trong đó:

  • function_name là tên của function
  • parameter_list là danh sách các tham số truyền vào function
  • RETURN data_type AS là xác định kiểu dữ liệu mà function sẽ trả về
  • statements là danh sách các lệnh SQL
  • RETURN value là giá trị sẽ được trả về.

Trong ví dụ dưới đây là một function có chức năng tính tổng của hai số.

CREATE FUNCTION tinh_tong(
    @a INT,
    @b INT
)
RETURNS INT
AS 
BEGIN
    RETURN @a * @b;
END;

Hoặc dựa vào database mẫu mình viết một function như sau:

CREATE FUNCTION sales.udfNetSale(
    @quantity INT,
    @list_price DEC(10,2),
    @discount DEC(4,2)
)
RETURNS DEC(10,2)
AS 
BEGIN
    RETURN @quantity * @list_price * (1 - @discount);
END;

Hàm này sẽ tính giá của một sản phẩm sau khi được giảm.

Sau khi chạy khởi tạo hàm này thì bạn sẽ thấy nó trong SSMS bằng cách click vào Programmability > Functions > Scalar-valued Functions.

SQL Server Scalar Function png

2. Cách gọi function trong SQL Server

Về cách dùng thì cũng như các hàm có sẵn của SQL Server, bạn chỉ cần gọi tên và truyền tham số vào (nếu có).

SELECT 
    tinh_tong(10, 20) tong

Hoặc bạn thử chạy hàm thứ hai ở trên trong database mẫu;

SELECT 
    sales.udfNetSale(10,100,0.1) net_sale

Thì kết quả sẽ như hình sau:

SQL Server Scalar Function example png

Bây giờ hãy áp dụng nó vào câu lệnh select để hiện thị giá cho mỗi sản phẩm nằm trong table order_items.

SELECT 
    order_id, 
    SUM(sales.udfNetSale(quantity, list_price, discount)) net_amount
FROM 
    sales.order_items
GROUP BY 
    order_id
ORDER BY
    net_amount DESC;

Kết quả sẽ như hình sau:

SQL Server Scalar Function calling function png

3. Sửa function trong SQL Server

Tương tự như Stored Procedure, để chỉnh sửa function thì bạn sử dụng cú pháp sau:

ALTER FUNCTION [schema_name.]function_name (parameter_list)
    RETURN data_type AS
    BEGIN
        statements
        RETURN value
    END

Nội dung mới của function sẽ thay thế nội dung cũ. Lệnh nay chỉ sửa được với những function mà do chính bạn tạo ra thôi nhé, không thể sửa các function có sẵn như count, concat.

4. Xóa function trong SQL Server

Để xóa một function nào đó thì bạn sử dụng lệnh DROP FUNCTION với cấu trúc như sau:

DROP FUNCTION [schema_name.]function_name;

Ví dụ mình muốn xóa function đã tạo ở trên thì chạy lệnh sau:

DROP FUNCTION sales.udfNetSale;

Tương tự, bạn chỉ có thể xóa function do bạn tự tạo.

Một vài lưu ý khác

Mỗi function có thể sử dụng ở bất cứ đâu trong câu lệnh T-SQL và nằm trong phạm vi database.

Có thể có nhiều tham số, tuy nhiên chỉ trả về được một giá trị duy nhất, bắt buộc phải return.

Có thể sử dụng mọi câu lệnh T-SQL bên trong function.

Function này có thể sử dụng function khác

Cùng chuyên mục:

Hàm CHAR trong SQL Server

Hàm CHAR trong SQL Server

Cách sử dụng hàm CHAR trong SQL Server

Hàm CHARINDEX trong SQL Server

Hàm CHARINDEX trong SQL Server

Cách sử dụng hàm CHARINDEX trong SQL Server

Hàm CONCAT trong SQL Server

Hàm CONCAT trong SQL Server

Cách sử dụng hàm CONCAT trong SQL Server

Hàm + trong SQL Server

Hàm + trong SQL Server

Cách sử dụng hàm + trong SQL Server

Hàm DATALENGTH trong SQL Server

Hàm DATALENGTH trong SQL Server

Cách sử dụng hàm DATALENGTH trong SQL Server

Hàm LEFT trong SQL Server

Hàm LEFT trong SQL Server

Cách sử dụng hàm LEFT trong SQL Server

Hàm LEN trong SQL Server

Hàm LEN trong SQL Server

Cách sử dụng hàm LEN trong SQL Server

Hàm LOWER trong SQL Server

Hàm LOWER trong SQL Server

Cách sử dụng hàm LOWER trong SQL Server

Hàm LTRIM trong SQL Server

Hàm LTRIM trong SQL Server

Cách sử dụng hàm LTRIM trong SQL Server

Hàm NCHAR trong SQL Server

Hàm NCHAR trong SQL Server

Cách sử dụng hàm NCHAR trong SQL Server

Hàm PATINDEX trong SQL Server

Hàm PATINDEX trong SQL Server

Cách sử dụng hàm PATINDEX trong SQL Server

Hàm REPLACE trong SQL Server

Hàm REPLACE trong SQL Server

Cách sử dụng hàm REPLACE trong SQL Server

Hàm RIGHT trong SQL Server

Hàm RIGHT trong SQL Server

Cách sử dụng hàm RIGHT trong SQL Server

Hàm RTRIM trong SQL Server

Hàm RTRIM trong SQL Server

Cách sử dụng hàm RTRIM trong SQL Server

Hàm SPACE trong SQL Server

Hàm SPACE trong SQL Server

Cách sử dụng hàm SPACE trong SQL Server

Hàm STR trong SQL Server

Hàm STR trong SQL Server

Cách sử dụng hàm STR trong SQL Server

Hàm UPPER trong SQL Server

Hàm UPPER trong SQL Server

Cách sử dụng hàm UPPER trong SQL Server

Hàm SUBSTRING trong SQL Server

Hàm SUBSTRING trong SQL Server

Cách sử dụng hàm SUBSTRING trong SQL Server

Hàm STUFF trong SQL Server

Hàm STUFF trong SQL Server

Cách sử dụng hàm STUFF trong SQL Server

Hàm ABS trong SQL Server

Hàm ABS trong SQL Server

Cách sử dụng hàm ABS trong SQL Server

Top