ปกติแล้ว DBMS จะมีฟังค์ชั่นพื้นฐานในด้านต่างๆมาให้ในระดับนึงได้ อาทิ เช่น
- ฟังก์ชั่นด้านตัวเลข ได้แก่ SUM, AVG เป็นค้น
- ฟังก์ชั่นด้านตัวอักษร ได้แก่ Trim(), Replace เป็นต้น
แต่บางครั้งงานบางชนิด ฟังก์ชั่นเหล่านี้ไม่สามารถตอบโจทย์ หรือ Business Rule ที่เราต้องการได้ ซึ่งตัว SQL Server หรือ DBMS ตัวอื่น ได้อนุญาตให้เราสร้างฟังก์ชั่นใช้เองได้ หรือ เรียกว่า User-Defined Function (ผมเน้นไปในตัว SQL Server) โดยสามารถสร้างฟังก์ชั่นได้ 3 ลักษณะ ดังนี้
- Scalar-valued Function คือ ฟังก์ชั่นที่คืนค่าเป็นข้อมูลชนิดพื้นฐานเพียงตัวเดียว เช่น datetime, int ยกเว้นชนิดข้อมูลแบบ text, ntext, image หรือ timestamp ที่ไม่สามารถสั่งให้คืนค่าได้ โดยการเรียกใช้สามารถเรียกใช้แบบเดียวกันกับฟังก์ที่เคยใช้งานมา โดยส่วนชื่อคอลัมน์ที่ต้องการเข้าไป เช่น SUM, Max เป็นต้น
- Inline Table-valued Function คือ ฟังก์ชั่นที่คืนค่าเป็นข้อมูลชนิดตาราง ซึ่งมีการทำงานที่ไม่ซับซ้อนมากนัก(ยุ่งเกี่ยวกับ Table หรือ View เพียงอันเดียว) โดยมีจุดสังเกตุเวลาตอนเรียกใช้งานต้องใส่หลังคำว่า FROM
- Multi-Stalement Table-valued Function คือ มีลักษณะเหมือนกับ Inline Table-valued Function แต่จะมีการทำงานที่ซับซ้อนมาก(ยุ่งเกี่ยวกับ Table หรือ View หลายอัน) จึงต้องมีการสร้างตาราง Temp เพิ่มมาพักข้อมูลก่อนที่จะ Return ตารางออกมา
โดยการสร้าง และใช้งานฟังก์ชั่น แต่ละแบบนั้น ผมค่อยเขียนบทความแนะนำต่อไปครับ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.