Common Table Expressions (CTE)

Technical Article

Function and Queries to Convert Hierarchical Adjacency to Nested Json Arrays

  • Script

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: )

1,975 reads

Stairway to Advanced T-SQL

Stairway to Advanced T-SQL Level 3: Understanding Common Table Expressions (CTEs)

  • Stairway Step

A CTE is a temporary result set defined by a simple query, and is used within the execution scope of a single INSERT, UPDATE, DELETE, or SELECT statement. In this article we will explore how to define and use CTE's.

You rated this post out of 5. Change rating

2024-04-03 (first published: )

6,113 reads

Blogs

Spark Connect Dotnet Variant Data Type

By

All Spark Connect Posts I recently published the latest version of the Spark Connect Dotnet...

A New Word: Opia

By

opia – n. the ambiguous intensity of eye contact The entry for this says...

Friday Flyway Tips: Searching a Migration

By

This was actually a cool tip I saw internally from one of the product...

Read the latest Blogs

Forums

Table Partitioning SQL server 2022

By Saran

Hi All, I am currently testing the Table Partitioning to implement in SQL server...

STRING_AGG's behavior

By Alessandro Mortola

Comments posted to this topic are about the item STRING_AGG's behavior

The Role of Databases in the Era of AI

By Steve Jones - SSC Editor

Comments posted to this topic are about the item The Role of Databases in...

Visit the forum

Question of the Day

STRING_AGG's behavior

Executing the following script (Sql Server 2022), you get the table t0 with 10 rows:
CREATE TABLE t0
( id     INT PRIMARY KEY
, field1 VARCHAR(1000)
, field2 VARCHAR(MAX));
INSERT INTO t0
SELECT
  gs.value
, REPLICATE ('X', 1000)
, REPLICATE ('Y', 1000)
FROM generate_series(1, 10, 1) gs;
GO
What happens if you execute the following statements?
  1. select STRING_AGG(field1, ';') within group (order by id)  from t0;
  2. select STRING_AGG(field2, ';') within group (order by id)  from t0;

See possible answers