/* ==============================================================================
SQL String Functions
-------------------------------------------------------------------------------
This document provides an overview of SQL string functions, which allow
manipulation, transformation, and extraction of text data efficiently.
Table of Contents:
1. Manipulations
- CONCAT
- LOWER
- UPPER
- TRIM
- REPLACE
2. Calculation
- LEN
3. Substring Extraction
- LEFT
- RIGHT
- SUBSTRING
=================================================================================
*/
/* ==============================================================================
CONCAT() - String Concatenation
=============================================================================== */
-- Concatenate first name and country into one column
SELECT
CONCAT(first_name, '-', country) AS full_info
FROM customers
/* ==============================================================================
LOWER() & UPPER() - Case Transformation
=============================================================================== */
-- Convert the first name to lowercase
SELECT
LOWER(first_name) AS lower_case_name
FROM customers
-- Convert the first name to uppercase
SELECT
UPPER(first_name) AS upper_case_name
FROM customers
/* ==============================================================================
TRIM() - Remove White Spaces
=============================================================================== */
-- Find customers whose first name contains leading or trailing spaces
SELECT
first_name,
LEN(first_name) len_name,
LEN(TRIM(first_name)) len_trim_name,
LEN(first_name) - LEN(TRIM(first_name)) flag
FROM customers
WHERE LEN(first_name) != LEN(TRIM(first_name))
-- WHERE first_name != TRIM(first_name)
/* ==============================================================================
REPLACE() - Replace or Remove old value with new one
=============================================================================== */
-- Remove dashes (-) from a phone number
SELECT
'123-456-7890' AS phone,
REPLACE('123-456-7890', '-', '/') AS clean_phone
-- Replace File Extence from txt to csv
SELECT
'report.txt' AS old_filename,
REPLACE('report.txt', '.txt', '.csv') AS new_filename
/* ==============================================================================
LEN() - String Length & Trimming
=============================================================================== */
-- Calculate the length of each customer's first name
SELECT
first_name,
LEN(first_name) AS name_length
FROM customers
/* ==============================================================================
LEFT() & RIGHT() - Substring Extraction
=============================================================================== */
-- Retrieve the first two characters of each first name
SELECT
first_name,
LEFT(TRIM(first_name), 2) AS first_2_chars
FROM customers
-- Retrieve the last two characters of each first name
SELECT
first_name,
RIGHT(first_name, 2) AS last_2_chars
FROM customers
/* ==============================================================================
SUBSTRING() - Extracting Substrings
=============================================================================== */
-- Retrieve a list of customers' first names after removing the first character
SELECT
first_name,
SUBSTRING(TRIM(first_name), 2, LEN(first_name)) AS trimmed_name
FROM customers
/* ==============================================================================
NESTING FUNCTIONS
===============================================================================*/
-- Nesting
SELECT
first_name,
UPPER(LOWER(first_name)) AS nesting
FROM customers