Forgotten T-SQL Cheat Sheet, Cheat Sheet of Database Management Systems (DBMS)

CTEs, recursive cts, except/intersect, order of select commands in t-sql

Typology: Cheat Sheet

2020/2021

Uploaded on 04/23/2021

cristelle
cristelle 🇺🇸

4.5

(53)

374 documents

1 / 1

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Forgotten T-SQL Cheat Sheet
http://www.MidnightDBA.com/Jen
Creative Commons Attribution-N oncommercial-No Derivative Works 3.0 United States License.
LOGICAL PROCESSING ORDER OF SELECT
1. FROM table
2. ON join condition
3. JOIN table
4. WHERE clauses
5. GROUP BY columns
6. WITH CUBE / WITH ROLLUP
7. HAVING condition
8. SELECT columns
9. DISTINCT
10. ORDER BY columns
11. TOP % or number
CTES
; WITH cteName ( columnList )
AS ( SELECT statement )
SELECT columns
FROM cteName
INNER JOIN table ON condition
RECURSIVE CTES
; WITH cteName ( columnList )
AS ( -- Anchor statement:
SELECT columns FROM table
UNION ALL
-- Recursion statement:
SELECT columns FROM table
INNER JOIN cteName ON
)
SELECT columns
FROM cteName
OVER AND PARTITION BY
/* Aggregate functions include COUNT,
MIN, MAX, AVG, ROW_COUNT(), etc. */
SELECT
agg_func(col1) OVER(),
agg_func(col1)
OVER(PARTITION BY col2),
columns
FROM table
XML TRICK: LIST OF DETAILS
/* Table2 holds detail
rows for Table1; e.g., order details to
order headers. */
SELECT columns,
colname = STUFF(
( SELECT ','
+ Name
FROM Table2
WHERE Table1.ID = Table2.ID
ORDER BY Name
FOR XML PATH('')
), 1, 1, '')
FROM Table2
EXCEPT/INTERSECT
SELECT col1, col2 FROM Table1
EXCEPT
SELECT col3, col4 FROM Table2
SELECT col1, col2 FROM Table1
INTERSECT
SELECT col3, col4 FROM Table2
MERGE
DECLARE @Changes
TABLE(Change VARCHAR(20))
; MERGE INTO DestTable
USING
( SELECT from sourceTable
) AS Source ( columnList )
ON DestTable.ID = Source.ID
WHEN MATCHED THEN
Action on destination
/* E.g., UPDATE SET col1 = 1 */
WHEN NOT MATCHED BY TARGET|SOURCE
Action on destination
/* E.g., INSERT (col1) VALUES(1) */
OUTPUT $action INTO @Changes
SELECT * FROM @Changes

Partial preview of the text

Download Forgotten T-SQL Cheat Sheet and more Cheat Sheet Database Management Systems (DBMS) in PDF only on Docsity!

Forgotten T-SQL Cheat Sheet

http://www.MidnightDBA.com/Jen Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License.

LOGICAL PROCESSING ORDER OF SELECT

1. FROM table 2. ON join condition

  1. JOIN table 4. WHERE clauses 5. GROUP BY columns
  2. WITH CUBE / WITH ROLLUP 7. HAVING condition 8. SELECT columns
  3. DISTINCT 10. ORDER BY columns 11. TOP % or number

CTES

; WITH cteName ( columnList ) AS ( SELECT statement ) SELECT columns FROM cteName INNER JOIN table ON condition

RECURSIVE CTES

; WITH cteName ( columnList ) AS ( -- Anchor statement: SELECT columns FROM table UNION ALL -- Recursion statement: SELECT columns FROM table INNER JOIN cteName ON ) SELECT columns FROM cteName

OVER AND PARTITION BY

/* Aggregate functions include COUNT, MIN, MAX, AVG, ROW_COUNT(), etc. */ SELECT agg_func ( col1 ) OVER(), agg_func ( col1 ) OVER(PARTITION BY col 2 ), columns FROM table

XML TRICK: LIST OF DETAILS

/* Table2 holds detail rows for Table1; e.g., order details to order headers. */ SELECT columns, colname = STUFF( ( SELECT ','

  • Name FROM Table WHERE Table1.ID = Table2.ID ORDER BY Name FOR XML PATH('') ), 1, 1, '') FROM Table

EXCEPT/INTERSECT

SELECT col1, col2 FROM Table EXCEPT SELECT col3, col4 FROM Table SELECT col1, col2 FROM Table INTERSECT SELECT col3, col4 FROM Table

MERGE

DECLARE @Changes TABLE(Change VARCHAR(20)) ; MERGE INTO DestTable USING ( SELECT from sourceTable ) AS Source ( columnList ) ON DestTable.ID = Source.ID WHEN MATCHED THEN Action on destination /* E.g., UPDATE SET col1 = 1 / WHEN NOT MATCHED BY TARGET|SOURCE Action on destination / E.g., INSERT (col1) VALUES(1) */ OUTPUT $action INTO @Changes SELECT * FROM @Changes