Scalar Functions — Complete Guide
Scalar Functions — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of SQL Server Tutorial on Toolliyo Academy.
On this page
SQL Server Tutorial · Lesson 43 of 100
Scalar Functions
SQL basics ✓ → Queries → Advanced
Queries · 2 — JOINs · ~6 min · SQL — Stored Procedures & Functions
What is this?
A scalar UDF returns one value. T-SQL scalar functions can harm performance in queries if called per row — use carefully or prefer inline alternatives.
Why should you care?
Formatting or simple calculations might live in a function, but set-based expressions often beat scalar UDFs in hot queries.
See it live — copy this example
Run in SQL Server Management Studio (SSMS) or Azure Data Studio.
USE DataVerse;
CREATE OR ALTER FUNCTION dbo.fn_AddGst(@Amount DECIMAL(18,2), @Rate DECIMAL(5,2))
RETURNS DECIMAL(18,2)
AS
BEGIN
RETURN CAST(@Amount * (1 + @Rate / 100.0) AS DECIMAL(18,2));
END
GO
SELECT OrderId, Amount, dbo.fn_AddGst(Amount, 18) AS AmountWithGst
FROM dbo.Orders;
What happened?
- fn_AddGst returns amount with GST percent applied.
- The SELECT shows per-order inclusive totals.
- For huge scans, consider computing inline instead.
Practice next
- Create the function and run the SELECT.
- Compare to Amount * 1.18 inline in a plan.
- Avoid scalar UDFs inside JOIN conditions on big tables.
- Call dbo.fn_AddGst(100, 18) alone.
- Add a second rate parameter default via wrapper proc.
Remember
Scalar UDF → one return value. Watch per-row cost in big queries. Inline math when performance matters.
GST display helper
DataVerse invoice UI shows amount with GST via fn_AddGst.
Outcome: Consistent tax math; heavy batch jobs use set-based formulas.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!