วิธีใช้งาน User Defined Function ซ้อน User Defined Function

อัพเดท 02 เมษายน 2557 15:35 - อ่าน 3,478 - หมวดหมู่ เรียนรู้คำสั่งจัดการข้อมูลใน SQL Server


ความสามารถพิเศษของ User Defined Function อีกหนึ่งอย่างคือความสามารถในการเรียกใช้งาน User Defined Function ซ้อน User Defined Function หลาย ๆ ชั้นได้ เช่นเดียวกับเราสามารถใช้งาน Stored Procedures ซ้อน Stored Procedures นั่นเอง ตัวอย่างเช่น

CREATE FUNCTION ComputeNum(@num1 int, @num2 int)

RETURN int AS

BEGIN

              RETURN ComputeNum2(@num1, @num2) + (@num1, @num2)

END

จะสังเกตุว่าใน User Defined Function ที่ชื่อ ComputeNum จะมีการเรียกใช้ ComputeNum2 ภายในอีกทีเพื่อคำนวณค่าให้อีกหนึ่งชั้นอีกด้วย



ไม่เพียงเท่านั้น User Defined Function ยังสามารถเรียกใช้ตัวเองหรือที่เรียกว่า Recursion User Defined Functions ได้ด้วยตัวอย่างเช่น


CREATE FUNCTION ComputeSum(@num1 int, @num2 int,@sum int)

RETURN int

AS



BEGIN

            WHILE @num1 <= @num2
            BEGIN
                        set @sum = @sum + @num1
                        set @num1 @num1 +1

                        ComputeSum(@num1, @num2, @count)
            END

            RETURN @sum
END

จากฟังก์ชั่น ComputeSum นั้นใช้คำควณผลรวมเลขทั้งหมดที่อยู่ในช่วง @num1 ไปจนถุึง @num2 ว่ารวมกันทั้งหมดได้เท่าไหร่และจะรีเทิร์นค่าผลรวมนั้นออกไป ซึ่งในฟังก์ชั่นข้างในจะมีการเรียกใช้งานตัวเองอยู่ซึ่งจะบวกค่า @num1 ไปเรื่อย ๆ และเก็บค่าไว้ใน @sum จนกว่า @num1 จะมีค่าเท่ากับ @num2 จังจะจบการทำงานและส่งค่ากลับเป็นผลรวม

นี่เป็นเพียงตัวอย่างการเรียกใช้งานนะครับ สามารถนำไปพลิกแพลงและดัดแปลงใช้งานกันได้ครับ



Tag: วิธีใช้งาน Recursion User Defined Functions, การเขียนฟังก์ชั่นรีเคอร์ซีฟใน SQL Server



ร่วมแสดงความคิดเห็น
ชื่อ :
ข้อความ : emo1 emo2 emo3 emo4 emo5 emo6 emo7 emo8 emo9 emo10 emo11 emo12 emo13 emo14 emo15
emo16 emo17 emo18 emo19 emo20 emo21 emo22 emo23 emo24 emo25 emo26 emo27 emo28 emo29 emo30 emo31


- หากต้องการใส่รูปคลิกซ้ายที่รูปภาพได้เลย :)
- ขึ้นบรรทัดใหม่โดยการกด Enter จะทำให้ข้อความไม่ยาวจนเกินไป :)
บวกกันให้ด้วยนะ :
Security Code
 

คอมเม้นท์ทั้งหมด 0 คอมเม้นท์
ค้นหาข้อมูลสุขภาพ


หมวดหมู่
โพสต์ล่าสุด
โค้ดการคิดคำนวณเกรดภาษา VB.NET และ C#.NET (ดู: 15,690)
วิธีใช้งาน BETWEEN ร่วมกับ Datetime ใน SQL Server (ดู: 6,838)
วิธีการใช้งาน Remote Desktop Connection บน Windows พร้อมทั้งการโอนย้ายไฟล์ระหว่างเครื่อง (ดู: 4,382)
คำสั่งคอเม้นท์ใน C# และ VB.NET (ดู: 7,831)
การใช้งานคำสั่ง try catch ในภาษา C#.NET และ VB.NET (ดู: 11,056)
การใช้งานคำสั่ง region ในภาษา C#.NET และ VB.NET (ดู: 5,791)
โค๊ดสำหรับส่งอีเมล์ใน Visual Studio ด้วยภาษา C# และ VB (ดู: 6,189)
วิธีทําตัวเซ็ตอัพสำหรับ Visual Studio 2010 (ดู: 6,366)
การออกแบบส่วนต่าง ๆ ของโปรเจ็คใน ASP.NET (ดู: 4,825)
ประเภทของตัวแปรในภาษา C#.NET (ดู: 3,802)
วิธีใช้คำสั่ง Select Case ใน VB.NET และ C#.NET (ดู: 9,693)
วิธีใช้คำสั่ง do while ใน VB.NET และ C#.NET (ดู: 7,814)
วิธีใช้คำสั่ง while ใน VB.NET และ C#.NET (ดู: 3,599)
วิธีใช้งานคำสั่ง for สำหรับวนลูปใน C#.NET และ VB.NET (ดู: 7,771)
วิธีเรียกใช้งาน Stored Procedure และ User Defined Function ข้ามฐานข้อมูล (ดู: 5,450)
วิธีใช้งาน User Defined Function ซ้อน User Defined Function (ดู: 3,479)
คำสั่งในการแก้ไข เปลี่ยนชื่อ และลบ User Defined Functions (ดู: 3,006)
วิธีการใช้งาน User Defined Function ประเภท Multi-Statement Table-valued Function (ดู: 2,788)
การใช้งาน User Defined Function ประเภท Inline Table-valued Function (ดู: 2,571)
การใช้งาน User Defined Function ประเภท Scalar Function (ดู: 3,058)
ทำความรู็จักกับ User Defined Function บน SQL Server (ดู: 4,083)
วิธีใช้งานคำสั่ง RAISERROR ใน SQL Server (ดู: 3,747)
การใช้คำสั่ง RETURN ใน SQL Server (ดู: 3,358)
วิธีการใช้คำสั่ง Print และ GOTO ใน SQL Server (ดู: 3,804)
วิธีการคอมเม้นท์ใน SQL Server (ดู: 3,735)
การประกาศตัวแปรด้วยคำสั่ง DECLARE ใน SQL Server (ดู: 11,719)
การใช้คำสั่ง While สำหรับวนลูปใน SQL Server (ดู: 7,247)
วิธีใช้งานคำสั่ง CASE ใน SQL Server (ดู: 15,162)
การใช้งาน IF ELSE ใน SQL Server (ดู: 8,387)
คำสั่งในการสร้าง แก้ไข และลบ Stored Procedures (ดู: 4,301)
www.SiamCoding.com เว็บสอนเทคนิคการเขียนโค๊ด ASP.NET ทริปคอมพิวเตอร์ และแวดวงข่าวไอทีทั่วทุกมุมโลก
สงวนลิขสิทธิ์ © 2555 SiamCoding.com Copy Right 2012 เข้าสู่ระบบ