Tally Table

Technical Article

Create a Tally Function (fnTally)

  • Script

Many people have published high performance, read-less, Inline Table Valued functions that use Itzik Ben-Gan's wonderful "Virtual Numbers Table" to replace WHILE loops and other forms of RBAR. This one is Jeff Moden's version.

(8)

You rated this post out of 5. Change rating

2019-08-13 (first published: )

7,737 reads

SQLServerCentral Article

Tally OH! An Improved SQL 8K “CSV Splitter” Function

  • Article

The Tally Table has proven to be a simple and elegant method for avoiding many varieties of RBAR. Unfortunately, one of its more common uses, that of a CSV splitter, has a well-known and serious performance problem. MVP Jeff Moden shows us what that problem is and how to correct it. (UPDATED with additional info and attachments on 5/12/2011).

(189)

You rated this post out of 5. Change rating

2012-12-28 (first published: )

141,335 reads

Blogs

Don’t Miss Out – SQL Server Query Tuning Fundamentals Starts Next Monday!

By

Next Monday, February 9, 2026, my one-day live online training SQL Server Query Tuning...

Monday Monitor Tips: SQL Auditing Preview

By

One of the features we advocates have been advocating for is a better way...

SQL Server 2025 CU1 Fixes the Docker Desktop AVX Issue on macOS

By

Microsoft fixed the AVX instruction issue in SQL Server 2025 CU1. The container now...

Read the latest Blogs

Forums

25 Years of SQL Server Central

By Steve Jones - SSC Editor

Comments posted to this topic are about the item 25 Years of SQL Server...

The Decoded Value

By Steve Jones - SSC Editor

Comments posted to this topic are about the item The Decoded Value

Deploying SQL Server Developer Edition in Kubernetes: A Cost-Effective Alternative to RDS

By Sujai Krishna

Comments posted to this topic are about the item Deploying SQL Server Developer Edition...

Visit the forum

Question of the Day

The Decoded Value

In SQL Server 2025, what is returned from this code:

DECLARE @message VARCHAR(50) = 'Hello SQL Server 2025!';
DECLARE @encoded VARCHAR(MAX);

SET @encoded = BASE64_ENCODE(CAST(@message AS VARBINARY(1000)));
SELECT BASE64_DECODE(@encoded) 

See possible answers