ปกติแล้ว 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 ตารางออกมา โดยการสร้าง และใช้งานฟังก์ชั่น แต่ละแบบนั้น ผมค่อยเขียนบทความแนะนำต่อไปครับ