Steve Collins


Technical Article

T-SQL Table Valued Function to compare Semantic Versions

Semantic versioning (SemVer) is a standardized system for labeling software releases using a three-part number—major, minor, and patch—optionally followed by pre-release labels and build metadata. Comparing semantic versions is complex because it requires handling both numeric and string components, as well as special precedence rules for pre-releases and stable versions. SQL Server’s hierarchyid data type is ideally suited for comparing the numeric parts of semantic versions, enabling efficient and accurate ordering without the pitfalls of string comparison or manual parsing.

(1)

You rated this post out of 5. Change rating

2025-05-27

210 reads

Technical Article

Function and Queries to Convert Hierarchical Adjacency to Nested Json Arrays

This script converts hierarchical adjacency into nested json rows which contain the recursive "downlines" of each node.  The table-valued function treats each row in the original adjacency as the root node in a recursive common table expression. 

You rated this post out of 5. Change rating

2019-11-25 (first published: )

778 reads

Technical Article

Function and Queries to Convert Hierarchical Adjacency to Nested Json Arrays

This script converts hierarchical adjacency into nested json rows which contain the recursive "downlines" of each node.  The table-valued function treats each row in the original adjacency as the root node in a recursive common table expression. 

You rated this post out of 5. Change rating

2019-11-12 (first published: )

2,062 reads

Blogs

The Book of Redgate: Spread across the world

By

This was Redgate in 2010, spread across the globe. First the EU/US Here’s Asia...

Merry Christmas

By

Today is Christmas and while I do not expect anybody to actual be reading...

Self-Hosting a Photo Server the Whole Family Can Use

By

Until recently, my family's 90,000+ photos have been hidden away in the depths of...

Read the latest Blogs

Forums

Happy Holidays, Let's Do Nerdy Stuff

By Grant Fritchey

Comments posted to this topic are about the item Happy Holidays, Let's Do Nerdy...

UNISTR Escape

By Steve Jones - SSC Editor

Comments posted to this topic are about the item UNISTR Escape

Celebrating Tomorrow

By Steve Jones - SSC Editor

Comments posted to this topic are about the item Celebrating Tomorrow

Visit the forum

Question of the Day

UNISTR Escape

In SQL Server 2025, I run this command:

SELECT UNISTR('*3041*308A*304C\3068 and good night', '*') as "A Classic";
What is returned? (assume the database has an appropriate collation) A: B: C:

See possible answers