Working with RIGHT in Postgres

06.07.2022

Intro

PostgreSQL provides the RIGHT function to select a number of characters starting from the right of the string. In this article, we will learn how to use right with PostgreSQL.

The Syntax

The basic syntax of a RIGHT is as follows:

SELECT RIGHT(string_name, length);

Getting Setup

We will be using docker in this article, but feel free to install your database locally instead. Once you have docker installed, create a new file called docker-compose.yml and add the following.

version: '3'
 
services:
  db:
    image: 'postgres:latest'
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: username
      POSTGRES_PASSWORD: password
      POSTGRES_DB: default_database
    volumes:
      - psqldata:/var/lib/postgresql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links:
      - db
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
      PMA_ARBITRARY: 1
    restart: always
    ports:
      - 8081:80

volumes:
  psqldata:

Next, run docker-compose up.

Now, navigate to http://localhost:8081/ to access phpMyAdmin. Then log in with the username root and pass root_pass.

Click the SQL tab and you are ready to go.

A Simple Example

The basic example is straight forward. We can pass a string into the Right function with the number of characters we would like to select.

SELECT RIGHT('Hello World!', 6);
right
World!

That's the gist of using the right function. We can also use RIGHT on a table. If you would like to try that, let's first set up a table.

Creating a DB

We start by creating an employee table to work with.

CREATE TABLE employees (
    first_name VARCHAR (50) NOT NULL,
    last_name VARCHAR (50) NOT NULL
);

Next, we can insert some data.

insert into employees (first_name, last_name) 
	values 
	('Keith', 'Holliday'),
	('Jon', 'Doe'),
	('Jane', 'Doe');

And, we can preview the data like so.

SELECT * FROM employees;
first_name last_name
Keith Holliday
Jon Doe
Jane Doe

An Example

Now that we are set up, we can use RIGHT on our columns.

SELECT RIGHT(first_name, 5) FROM employees;
right
Keith
Jon
Jane