Skip to content

PostgreSQL String Functions

PostgreSQL gives us many functions to work with text. We can join, split, search, replace, trim, and format strings easily using these.

This guide covers the most common ones with examples.


πŸ“ Setup Example Table

CREATE TABLE students (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
city VARCHAR(50)
);
INSERT INTO students (name, city) VALUES
('Saurabh Jaykar', 'Nagpur'),
('Anita Sharma', 'Mumbai'),
('Rahul Kumar', 'Delhi'),
('Priya Singh', 'Pune');

βœ… Table:

idnamecity
1Saurabh JaykarNagpur
2Anita SharmaMumbai
3Rahul KumarDelhi
4Priya SinghPune

πŸ”€ 1. Upper & Lower Case

SELECT UPPER(name) AS upper_name, LOWER(city) AS lower_city FROM students;

βœ… Output:

upper_namelower_city
SAURABH JAYKARnagpur
ANITA SHARMAmumbai
RAHUL KUMARdelhi
PRIYA SINGHpune

βœ‚οΈ 2. Length of String

SELECT name, LENGTH(name) AS name_length FROM students;

βœ… Output:

namename_length
Saurabh Jaykar14
Anita Sharma12
Rahul Kumar11
Priya Singh11

πŸ” 3. Find Position of Substring

SELECT POSITION('a' IN name) AS pos_a, name FROM students;

βœ… Output:

pos_aname
2Saurabh Jaykar
2Anita Sharma
2Rahul Kumar
3Priya Singh

πŸͺ“ 4. Substring

SELECT SUBSTRING(name FROM 1 FOR 5) AS short_name, name FROM students;

βœ… Output:

short_namename
SaurabSaurabh Jaykar
AnitaAnita Sharma
RahulRahul Kumar
PriyaPriya Singh

πŸ”— 5. Concatenation

SELECT name || ' from ' || city AS intro FROM students;

βœ… Output:

intro
Saurabh Jaykar from Nagpur
Anita Sharma from Mumbai
Rahul Kumar from Delhi
Priya Singh from Pune

✏️ 6. Replace Text

SELECT REPLACE(city, 'i', '*') AS new_city FROM students;

βœ… Output:

new_city
Nagpur
Mumba*
Delh*
Pune

🧹 7. Trim Spaces

SELECT TRIM(' hello world ') AS trimmed;

βœ… Output:

trimmed
hello world

πŸ”„ 8. Reverse String

SELECT REVERSE(name) AS rev_name FROM students;

βœ… Output:

rev_name
rakyaJ hbaruaS
amrahS atinA
ramuK luhaR
hgniS ayirP

⬅️ 9. Left Part of String

SELECT LEFT(name, 5) AS left_name, name FROM students;

βœ… Output:

left_namename
SaurabSaurabh Jaykar
AnitaAnita Sharma
RahulRahul Kumar
PriyaPriya Singh

➑️ 10. Right Part of String

SELECT RIGHT(name, 5) AS right_name, name FROM students;

βœ… Output:

right_namename
JaykarSaurabh Jaykar
SharmaAnita Sharma
KumarRahul Kumar
SinghPriya Singh

πŸ“‹ Cheat-Sheet Table

FunctionExampleResult
UPPER()UPPER('hello')HELLO
LOWER()LOWER('HELLO')hello
LENGTH()LENGTH('India')5
POSITION()POSITION('a' IN 'Ravi')2
SUBSTRING()SUBSTRING('Postgres' FROM 1 FOR 4)Post
`` (concat)`β€˜Hello'' World’`Hello World
REPLACE()REPLACE('banana','na','*')ba**
TRIM()TRIM(' SQL ')SQL
REVERSE()REVERSE('abc')cba