I need to select a substring based on fixed character length till Nth space. Let me explain the problem.
Let's assume I have three different strings:
- Lorem ipsum dolor sit amet, consectetur adipiscing elit
- Lorem ipsumdolor sit amet, consectetur adipiscing elit
- Lorem ipsum dolorsitamet, consectetur adipiscing elit
If I select 20 character from the beginning of the string I get the following substring sequentially
- Lorem ipsum dolor si
- Lorem ipsumdolor sit
- Lorem ipsum dolorsit
But I want my substring (which is at most 20 characters long) like this
- Lorem ipsum dolor
- Lorem ipsumdolor sit
- Lorem ipsum
That is, I do not want any partial word between two whitespaces
Please help me to generate the query.
Oracle:
select substr(substr(MyField,1,20), 1, instr(substr(MyField,1,20), ' ',-1,1))
from MyTable
SQL Server
SELECT LEFT(MyField, 20 - CHARINDEX (' ' ,REVERSE(LEFT(MyField,20))))
FROM MyTable