Skip to content

Bits of .NET

Daily micro-tips for C#, SQL, performance, and scalable backend engineering.

  • Asp.Net Core
  • C#
  • SQL
  • JavaScript
  • CSS
  • About
  • ErcanOPAK.com
  • No Access
  • Privacy Policy
SQL

Get the First and Last Word from a String or Sentence in SQL

- 11.06.18 | 20.05.22 - ErcanOPAK

You can use the query below:

DECLARE @Sentence VARCHAR(MAX) = 'The quick brown fox jumps over the lazy dog' 

DECLARE @first_space_index int = CHARINDEX(' ', @Sentence) - 1
DECLARE @last_space_index int = CHARINDEX(' ', REVERSE(@Sentence)) - 1

IF @first_space_index < 0
	SELECT @Sentence AS [First Word], @Sentence AS [Last Word] 
ELSE
	SELECT SUBSTRING(@Sentence, 1, @first_space_index) AS [First Word], REVERSE(SUBSTRING(REVERSE(@Sentence), 1, @last_space_index)) AS [Last Word]

First Word   Last Word
------------ -----------
The          dog


If @Sentence = 'The' then the result will be:

First Word   Last Word
------------ -----------
The          The

Related posts:

Drag and Drop objects from Object Explorer to the Query Window in SQL Server

Why NVARCHAR(MAX) Can Destroy Query Plans

SQL: Writing Readable Queries with Common Table Expressions (CTE)

Post Views: 828

Post navigation

Add Constraint to SQL Table to ensure email contains @
Get the User Name and Domain Name from an Email Address in SQL

2 thoughts on “Get the First and Last Word from a String or Sentence in SQL”

  1. Daniel says:
    17.05.22 at 12:27

    Fails if only 1 word

    Reply
    1. ErcanOPAK says:
      20.05.22 at 11:50

      Thanks for the feedback, Daniel. I have updated the solution. 🙂

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

March 2026
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  
« Feb    

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (938)
  • How to add default value for Entity Framework migrations for DateTime and Bool (837)
  • Get the First and Last Word from a String or Sentence in SQL (828)
  • How to select distinct rows in a datatable in C# (801)
  • How to make theater mode the default for Youtube (738)
  • Add Constraint to SQL Table to ensure email contains @ (575)
  • How to enable, disable and check if Service Broker is enabled on a database in SQL Server (554)
  • Average of all values in a column that are not zero in SQL (524)
  • How to use Map Mode for Vertical Scroll Mode in Visual Studio (477)
  • Find numbers with more than two decimal places in SQL (443)

Recent Posts

  • C#: Saving Memory with yield return (Lazy Streams)
  • C#: Why Records are Better Than Classes for Data DTOs
  • C#: Creating Strings Without Memory Pressure with String.Create
  • SQL: Protecting Sensitive Data with Dynamic Data Masking
  • SQL: Writing Readable Queries with Common Table Expressions (CTE)
  • .NET Core: Handling Errors Gracefully with Middleware
  • .NET Core: Mastering Service Lifetimes (A Visual Guide)
  • Git: Surgical Stashing – Don’t Save Everything!
  • Git: Writing Commits That Your Future Self Won’t Hate
  • Ajax: Improving Perceived Speed with Skeleton Screens

Most Viewed Posts

  • Get the User Name and Domain Name from an Email Address in SQL (938)
  • How to add default value for Entity Framework migrations for DateTime and Bool (837)
  • Get the First and Last Word from a String or Sentence in SQL (828)
  • How to select distinct rows in a datatable in C# (801)
  • How to make theater mode the default for Youtube (738)

Recent Posts

  • C#: Saving Memory with yield return (Lazy Streams)
  • C#: Why Records are Better Than Classes for Data DTOs
  • C#: Creating Strings Without Memory Pressure with String.Create
  • SQL: Protecting Sensitive Data with Dynamic Data Masking
  • SQL: Writing Readable Queries with Common Table Expressions (CTE)

Social

  • ErcanOPAK.com
  • GoodReads
  • LetterBoxD
  • Linkedin
  • The Blog
  • Twitter
© 2026 Bits of .NET | Built with Xblog Plus free WordPress theme by wpthemespace.com