The Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified
Book created for educational purposes and is not affiliated with group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners
https://goalkicker.com/
Content
1-1Content list
1-2About
1-3Chapter 1: Getting started with Microsoft SQL Server
1-4Section 1.1: INSERT / SELECT / UPDATE / DELETE: the basics of Data Manipulation Language
1-5Section 1.2: SELECT all rows and columns from a table
1-6Section 1.3: UPDATE Specific Row
1-7Section 1.4: DELETE All Rows
1-8Section 1.5: Comments in code
1-9Section 1.6: PRINT
1-10Section 1.7: Select rows that match a condition
1-11Section 1.8: UPDATE All Rows
1-12Section 1.9: TRUNCATE TABLE
1-13Section 1.10: Retrieve Basic Server Information
1-14Section 1.11: Create new table and insert records from old table
1-15Section 1.12: Using Transactions to change data safely
1-16Section 1.13: Getting Table Row Count
1-17Chapter 2: Data Types
1-18Section 2.1: Exact Numerics
1-19Section 2.2: Approximate Numerics
1-20Section 2.3: Date and Time
1-21Section 2.4: Character Strings
1-22Section 2.5: Unicode Character Strings
1-23Section 2.6: Binary Strings
1-24Section 2.7: Other Data Types
1-25Chapter 3: Converting data types
1-26Section 3.1: TRY PARSE
1-27Section 3.2: TRY CONVERT
1-28Section 3.3: TRY CAST
1-29Section 3.4: Cast
1-30Section 3.5: Convert
1-31Chapter 4: User Defined Table Types
1-32Section 4.1: creating a UDT with a single int column that is also a primary key
1-33Section 4.2: Creating a UDT with multiple columns
1-34Section 4.3: Creating a UDT with a unique constraint:
1-35Section 4.4: Creating a UDT with a primary key and a column with a default value:
1-36Chapter 5: SELECT statement
1-37Section 5.1: Basic SELECT from table
1-38Section 5.2: Filter rows using WHERE clause
1-39Section 5.3: Sort results using ORDER BY
1-40Section 5.4: Group result using GROUP BY
1-41Section 5.5: Filter groups using HAVING clause
1-42Section 5.6: Returning only first N rows
1-43Section 5.7: Pagination using OFFSET FETCH
1-44Section 5.8: SELECT without FROM (no data souce)
1-45Chapter 6: Alias Names in SQL Server
1-46Section 6.1: Giving alias after Derived table name
1-47Section 6.2: Using AS
1-48Section 6.3: Using =
1-49Section 6.4: Without using AS
1-50Chapter 7: NULLs
1-51Section 7.1: COALESCE ()
1-52Section 7.2: ANSI NULLS
1-53Section 7.3: ISNULL()
1-54Section 7.4: Is null / Is not null
1-55Section 7.5: NULL comparison
1-56Section 7.6: NULL with NOT IN SubQuery
1-57Chapter 8: Variables
1-58Section 8.1: Declare a Table Variable
1-59Section 8.2: Updating variables using SELECT
1-60Section 8.3: Declare multiple variables at once, with initial values
1-61Section 8.4: Updating a variable using SET
1-62Section 8.5: Updating variables by selecting from a table
1-63Section 8.6: Compound assignment operators
1-64Chapter 9: Dates
1-65Section 9.1: Date & Time Formatting using CONVERT
1-66Section 9.2: Date & Time Formatting using FORMAT
1-67Section 9.3: DATEADD for adding and subtracting time periods
1-68Section 9.4: Create function to calculate a person's age on a specific date
1-69Section 9.5: Get the current DateTime
1-70Section 9.6: Getting the last day of a month
1-71Section 9.7: CROSS PLATFORM DATE OBJECT
1-72Section 9.8: Return just Date from a DateTime
1-73Section 9.9: DATEDIFF for calculating time period dierences
1-74Section 9.10: DATEPART & DATENAME
1-75Section 9.11: Date parts reference
1-76Section 9.12: Date Format Extended
1-77Chapter 10: Generating a range of dates
1-78Section 10.1: Generating Date Range With Recursive CTE
1-79Section 10.2: Generating a Date Range With a Tally Table
1-80Chapter 11: Database Snapshots
1-81Section 11.1: Create a database snapshot
1-82Section 11.2: Restore a database snapshot
1-83Section 11.3: DELETE Snapshot
1-84Chapter 12: COALESCE
1-85Section 12.1: Using COALESCE to Build Comma-Delimited String
1-86Section 12.2: Getting the first not null from a list of column values
1-87Section 12.3: Coalesce basic Example
1-88Chapter 13: IF...ELSE
1-89Section 13.1: Single IF statement
1-90Section 13.2: Multiple IF Statements
1-91Section 13.3: Single IF..ELSE statement
1-92Section 13.4: Multiple IF... ELSE with final ELSE Statements
1-93Section 13.5: Multiple IF...ELSE Statements
1-94Chapter 14: CASE Statement
1-95Section 14.1: Simple CASE statement
1-96Section 14.2: Searched CASE statement
1-97Chapter 15: INSERT INTO
1-98Section 15.1: INSERT multiple rows of data
1-99Section 15.2: Use OUTPUT to get the new Id
1-100Section 15.3: INSERT from SELECT Query Results
1-101Section 15.4: INSERT a single row of data
1-102Section 15.5: INSERT on specific columns
1-103Section 15.6: INSERT Hello World INTO table
1-104Chapter 16: MERGE
1-105Section 16.1: MERGE to Insert / Update / Delete
1-106Section 16.2: Merge Using CTE Source
1-107Section 16.3: Merge Example - Synchronize Source And Target Table
1-108Section 16.4: MERGE using Derived Source Table
1-109Section 16.5: Merge using EXCEPT
1-110Chapter 17: CREATE VIEW
1-111Section 17.1: CREATE Indexed VIEW
1-112Section 17.2: CREATE VIEW
1-113Section 17.3: CREATE VIEW With Encryption
1-114Section 17.4: CREATE VIEW With INNER JOIN
1-115Section 17.5: Grouped VIEWs
1-116Section 17.6: UNION-ed VIEWs
1-117Chapter 18: Views
1-118Section 18.1: Create a view with schema binding
1-119Section 18.2: Create a view
1-120Section 18.3: Create or replace view
1-121Chapter 19: UNION
1-122Section 19.1: Union and union all
1-123Chapter 20: TRY/CATCH
1-124Section 20.1: Transaction in a TRY/CATCH
1-125Section 20.2: Raising errors in try-catch block
1-126Section 20.3: Raising info messages in try catch block
1-127Section 20.4: Re-throwing exception generated by RAISERROR
1-128Section 20.5: Throwing exception in TRY/CATCH blocks
1-129Chapter 21: WHILE loop
1-130Section 21.1: Using While loop
1-131Section 21.2: While loop with min aggregate function usage
1-132Chapter 22: OVER Clause
1-133Section 22.1: Cumulative Sum
1-134Section 22.2: Using Aggregation functions with OVER
1-135Section 22.3: Dividing Data into equally-partitioned buckets using NTILE
1-136Section 22.4: Using Aggregation funtions to find the most recent records
1-137Chapter 23: GROUP BY
1-138Section 23.1: Simple Grouping
1-139Section 23.2: GROUP BY multiple columns
1-140Section 23.3: GROUP BY with ROLLUP and CUBE
1-141Section 23.4: Group by with multiple tables, multiple columns
1-142Section 23.5: HAVING
1-143Chapter 24: ORDER BY
1-144Section 24.1: Simple ORDER BY clause
1-145Section 24.2: ORDER BY multiple fields
1-146Section 24.3: Custom Ordering
1-147Section 24.4: ORDER BY with complex logic
1-148Chapter 25: The STUFF Function
1-149Section 25.1: Using FOR XML to Concatenate Values from Multiple Rows
1-150Section 25.2: Basic Character Replacement with STUFF()
1-151Section 25.3: Basic Example of STUFF() function
1-152Section 25.4: stu for comma separated in sql server
1-153Section 25.5: Obtain column names separated with comma (not a list)
1-154Chapter 26: JSON in SQL Server
1-155Section 26.1: Index on JSON properties by using computed columns
1-156Section 26.2: Join parent and child JSON entities using CROSS APPLY OPENJSON
1-157Section 26.3: Format Query Results as JSON with FOR JSON
1-158Section 26.4: Parse JSON text
1-159Section 26.5: Format one table row as a single JSON object using FOR JSON
1-160Section 26.6: Parse JSON text using OPENJSON function
1-161Chapter 27: OPENJSON
1-162Section 27.1: Transform JSON array into set of rows
1-163Section 27.2: Get key:value pairs from JSON text
1-164Section 27.3: Transform nested JSON fields into set of rows