ตอนที่ 16 : การสร้าง Function บน Server Database (SQL Server : Function) |
ตอนที่ 16 : การสร้าง Function บน Server Database (SQL Server : Function) ปกติแล้ว Function บน SQL Server มีอยู่หลายตัวให้เรียกใช้งานได้เลย เช่น SUBSTRING , DATEADD , LOWER , UPPER และอื่น ๆ แต่สำหรับ Function บน SQL Server ที่เราจะพูดถึง Function ที่จะสร้างขึ้นมาใช้งานเอง โดยจะมีรูปแบบเหมือนกับการเขียน Function บนโปรแกรมทั่ว ๆ ไป คือ ฟังก์ชั่นจะเป็นรูปแบบการทำงานที่เสร็จสิ้นภายในตัวเอง พร้อมกับทำการ Return ค่ากลับไปตามชนิดหรือ Data Type ที่ได้ประกาศไว้
โครงสร้างของตาราง CUSTOMER
Table : CUSTOMER
Create Function Syntax
CREATE FUNCTION <Inline_Function_Name, sysname, FunctionName>
(
-- Add the parameters for the function here
<@param1, sysname, @p1> <Data_Type_For_Param1, , int>,
<@param2, sysname, @p2> <Data_Type_For_Param2, , char>
)
RETURNS Data_Type
AS
BEGIN
-- Add the Return data
RETURN Variable
END
Example : ตัวอย่างการสร้าง Function แบบง่าย ๆ
CREATE FUNCTION GetDiffAmount
(
@pAmount1 DECIMAL(18,2),
@pAmount2 DECIMAL(18,2)
)
RETURNS DECIMAL(18,2)
AS BEGIN
DECLARE @diffAmt DECIMAL(18,2)
SET @diffAmt = @pAmount1 - @pAmount2
RETURN @diffAmt
END
จากคำสั่งนี้ FUNCTION นี้จะเป็นการรับค่า 2 ค่าแล้วนำมาลบกัน พร้อมกับ Return ค่าที่ได้กลับไป
ทดสอบการทำงาน
SELECT dbo.GetDiffAmount(2000, 500) As DiffAmt
ผลลัพธ์ที่ได้
นอกจากนี้ยังสามารถใช้ FUNCTION ร่วมกับ SQL Query ได้เช่นเดียวกัน เช่น จากตาราง CUSTOMER จะมีคอลัมบ์ BUDGET และ USED เราจะสร้างคอลัมบ์ใหม่โดยเป็นค่าที่มาจากฟังก์ชั้นของ GetDiffAmount()
SELECT *, dbo.getDiffAmount(BUDGET,USED) AS DiffAmount FROM CUSTOMER
ผลลัพธ์ที่ได้
|