CREATE FUNCTION - Lệnh Tạo Hàm - SQL & Database

Skip to content
  • Microsoft SQL Server
  • 4
CREATE FUNCTION – Lệnh tạo hàm

Nội dung

  • 1. Mô tả
  • 2. Cú pháp
  • 3. Ví dụ

1. Mô tả

  • Lệnh CREATE FUNCTION dùng để tạo hàm (UDF: User-Defined Function) trong CSDL.
  • Hàm là một chương trình con (Sub Program).
  • Hàm dùng để thực hiện một xử lý tính toán và trả về kết quả. Ví dụ: tính tuổi, tính điểm trung bình, tính tổng nhập, tổng xuất của vật tư…
  • Hàm chỉ cho phép loại tham số đầu vào (INPUT).
  • Phân loại:– Hàm đơn trị (Scalar Function).– Hàm đọc bảng (Inline Table-Valued Function).– Hàm tạo bảng (Multi-Statement Table-Valued Function).

2. Cú pháp

  • Hàm đơn trị
CREATE FUNCTION Tên_hàm(Khai_báo_tham_số) RETURNS Kiểu_dữ_liệu_trả_về AS BEGIN Lệnh... RETURN Giá_trị_trả_về END GO
  • Hàm đọc bảng
CREATE FUNCTION Tên_hàm(Khai_báo_tham_số) RETURNS TABLE AS RETURN ( Câu_truy_vấn ) GO
  • Hàm tạo bảng
CREATE FUNCTION Tên_hàm(Khai_báo_tham_số) RETURNS Tên_biến TABLE(Khai_báo_cấu_trúc_bảng) AS BEGIN INSERT | UPDATE | DELETE RETURN END GO

3. Ví dụ

  • Hàm đơn trị
--Hàm tính diện tích hình tròn khi biết bán kính CREATE FUNCTION dbo.Dien_tich_hinh_tron (@Ban_kinh float = 1.0) RETURNS float WITH RETURNS NULL ON NULL INPUT AS BEGIN RETURN PI() * POWER(@Ban_kinh, 2) END GO --Gọi thực hiện --Cách 1 PRINT dbo.Dien_tich_hinh_tron(3.5) GO --Cách 2 DECLARE @r float =3.5 DECLARE @s float = dbo.Dien_tich_hinh_tron(@r) PRINT @s GO
--Hàm tính giai thừa một số nguyên N (N >= 0) CREATE FUNCTION dbo.Giai_thua (@n int = 1) RETURNS decimal(38, 0) AS BEGIN RETURN ( CASE WHEN @n < 0 THEN NULL WHEN @n = 0 THEN 1 WHEN @n > 1 THEN CAST(@n AS float) * dbo.Giai_thua(@n - 1) WHEN @n = 1 THEN 1 END ) END --Gọi thực hiện PRINT dbo.Giai_thua(3)
  • Hàm đọc bảng
--Tạo hàm đọc danh sách nhân viên theo mã phòng truyền vào CREATE FUNCTION Danh_sach_nhan_vien(@depid numeric(3,0)) RETURNS TABLE AS RETURN ( SELECT * FROM EMPLOYEES WHERE Department_id = @depid OR @depid = 0 ) GO --Gọi hàm SELECT * FROM Danh_sach_nhan_vien(80)
  • Hàm tạo bảng
--Tạo hàm CREATE FUNCTION Thong_ke_nhan_vien() RETURNS @bang TABLE ( Maphong numeric(3,0), Tenphong nvarchar(30), Sonv tinyint ) AS BEGIN INSERT INTO @bang SELECT e.Department_id, d.Department_name, COUNT(*) FROM EMPLOYEES e JOIN DEPARTMENTS d ON e.Department_id = d.Department_id GROUP BY e.Department_id, d.Department_name RETURN END --Gọi hàm SELECT * FROM Thong_ke_nhan_vien()

Xem thêm: lệnh sửa hàm ALTER FUNCTION, lệnh xóa hàm DROP FUNCTION.

Tags: CREATECREATE FUNCTIONFUNCTION

  • Next story ALTER FUNCTION – Lệnh sửa hàm
  • Previous story DROP PROC – Lệnh xóa Stored Procedure

You may also like...

  • ALTER-FUNCTION 0

    ALTER FUNCTION – Lệnh sửa hàm

    01/06/2020

    by SQL.edu.vn · Published 01/06/2020 · Last modified 13/05/2023

  • 0

    CREATE TABLE – Lệnh tạo bảng

    01/03/2020

    by SQL.edu.vn · Published 01/03/2020 · Last modified 14/05/2023

  • Stored-Procedure 0

    CREATE PROC – Lệnh tạo Stored Procedure

    25/05/2020

    by SQL.edu.vn · Published 25/05/2020 · Last modified 14/05/2023

4 Responses

  • Comments4
  • Pingbacks0
  1. long viết: 14/05/2021 lúc 3:30 chiều

    cám ơn rất nhiều

    Bình luận
  2. Lâm Trung Cường viết: 25/07/2022 lúc 10:16 sáng

    Rất dễ hiễu, cám ơn bạn nhé

    Bình luận
  3. Nguyễn Duy Luân viết: 25/12/2023 lúc 7:04 sáng

    Rất chi tiết và dễ hiểu, cảm ơn bạn!

    Bình luận
  4. tung viết: 21/08/2024 lúc 2:27 chiều

    Cảm ơn rất nhiều

    Bình luận

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bình luận *

Tên *

Email *

Trang web

Lưu tên của tôi, email, và trang web trong trình duyệt này cho lần bình luận kế tiếp của tôi.

Học SQL

Từ khóa » Hàm On Trong Sql