Itzik Ben-Gan


Itzik Ben-Gan is a contributing editor to SQL Server Pro and a cofounder of SolidQ. He teaches, lectures, and consults internationally. He's a SQL Server MVP and is the author of several books about T-SQL, including Microsoft SQL Server 2012 High-Performance T-SQL Using Window Functions (Microsoft Press).

Check out Itzik's Puzzled by T-SQL blog.
Twitter: @ItzikBenGan

Some differences between the COALESCE and ISNULL functions make COALESCE preferable, whereas others make ISNULL preferable. Learn the differences, to make an educated decision about which to use.
Copying Data with Dependencies 2
Itzik uses a simple generic data model to demonstrate how to copy data from one set of related tables to another, including dependent rows, while preserving the correct relationships between the rows.
CTEs with Multiple Recursive Members, Part 2
Itzik explains how to use a recursive CTE with multiple recursive members to draw a Koch snowflake.
CTEs with Multiple Recursive Members 2
Itzik provides two examples of CTEs with multiple recursive members: genealogy-related queries and the nested set model for representing graphs.
SQL Server 2012 Solutions for Median Calculation 1
Itzik examines new T-SQL features in SQL Server 2012 for computing the median. The type of median calculation he focuses on is one that assumes a continuous distribution model.
red jigsaw puzzle with missing piece
T-SQL Puzzle 4
Itzik presents a puzzle based on the British game show Blockbusters. See whether you can use T-SQL to solve the puzzle.
black calculator keys
Calculate Percentiles
Use T-SQL to implement statistical calculations such as percentile and percentile rank.
road sign pointing to success and failure
Combining Distinct and Non-Distinct Aggregates 3
Itzik presents an optimization improvement related to queries that involve both distinct and non-distinct aggregate computations.
small island in the middle of the ocean
Solving Gaps and Islands with Enhanced Window Functions
SQL Server 2012 provides enhanced window functions to help deal with gap and island problems.
MERGE Statement Tips 2
Itzik discusses several tips for using the T-SQL MERGE statement: preventing MERGE conflicts, understanding that the MERGE ON clause isn’t a filter, realizing that the MERGE USING clause is like the FROM clause in a SELECT statement, and referring to source table elements in the OUTPUT clause.
red percentage key on a calculator
Inverse Distribution Functions
Itzik provides pre-SQL Server 2012 solutions to using ordered set functions for computation of percentiles.
Ordered Set Functions
Various types of calculations can be implemented as ordered set functions, although you currently must rely on workarounds to accomplish this task because SQL Server 2012 doesn't support ordered set functions.
T-SQL Best Practices, Part 2
Itzik continues his discussion of T-SQL best practices; he discusses cloud compatibility, date and time best practices, the importance of writing in a standard way, and performance-related best practices.
illustration of computer code with man's face in background
T-SQL Best Practices, Part 1 1
Some T-SQL best practices include thinking in a relational way, always remembering NULLs and the three-valued-logic, realizing the full implications of using the NOLOCK hint and therefore avoiding it, and adopting good coding practices.
Example to demonstrate an actual SQL Server execution plan
Understanding Query Plans 2
A key element in query tuning is using the execution plan to determine the reasons for poor query performance. SQL Server provides rich information about query plans in the graphical as well as XML forms of plans.

Digital Magazine Archives

Browse back issues of SQL Server Pro, from January 2007 through the last issue published in April 2014. Find the back issues here.


From the Blogs
Jul 28, 2015

AlwaysOn Availability Groups and SQL Server Jobs, Part 29: Practical Implementation Tips

My initial goal in writing this series of posts was to outline some of the concerns surrounding Availability Groups (AGs) and SQL Server Agent Jobs – and call out how there is virtually no guidance from Microsoft on this front and then detail some of the pitfalls and options available for tackling this problem domain. I initially expected this series of posts to have between 25 and 30 posts – according to some of the early outlines I created ‘way back when’....More
Jul 6, 2015

AlwaysOn Availability Groups and SQL Server Jobs, Part 28: Additional Options for Tackling Jobs Failover

Throughout this series of posts I’ve taken a somewhat pessimistic view of how SQL Server Agent jobs are managed within most organizations – meaning that most of the code and examples I’ve provided up until this point were based on assumptions about how CHANGE to jobs is managed. That pessimism, to date, has come in two forms:...More
Jul 1, 2015

AlwaysOn Availability Groups and SQL Server Jobs, Part 27: Options and Concerns for More Advanced Deployments

In this series of posts I’ve called out some of the concerns related to SQL Server AlwaysOn Availability Groups and their interaction with SQL Server Agent jobs – both in the form of Batch Jobs (see post #3) and backups....More
SQL Server Pro Forums

Get answers to questions, share tips, and engage with the SQL Server community in our Forums.

Sponsored Introduction Continue on to (or wait seconds) ×