;WITH cte_data AS (
SELECT 'Net change in unrealized gain/(loss) on foreign currency translations' AS string
UNION ALL
SELECT 'Net change in unrealized gain/(loss) on derivatives'
UNION ALL
SELECT 'Something went wrong with input'
)
SELECT SUBSTRING(string, s6.space + 1, 1) /*, string*/
FROM cte_data
CROSS APPLY ( SELECT NULLIF(CHARINDEX(' ', string), 0) AS space ) AS s1
CROSS APPLY ( SELECT NULLIF(CHARINDEX(' ', string, s1.space + 1), 0) AS space ) AS s2
CROSS APPLY ( SELECT NULLIF(CHARINDEX(' ', string, s2.space + 1), 0) AS space ) AS s3
CROSS APPLY ( SELECT NULLIF(CHARINDEX(' ', string, s3.space + 1), 0) AS space ) AS s4
CROSS APPLY ( SELECT NULLIF(CHARINDEX(' ', string, s4.space + 1), 0) AS space ) AS s5
CROSS APPLY ( SELECT NULLIF(CHARINDEX(' ', string, s5.space + 1), 0) AS space ) AS s6
You will need SQL Server 2012 ( for String Split Ordinal Position )
create sample data
drop table #temp
create table #temp ( String varchar(max) )
insert into #temp
SELECT 'Net change in unrealized gain/(loss) on foreign currency translations' AS string
UNION ALL
SELECT 'Net change in unrealized gain/(loss) on derivatives'
UNION ALL
SELECT 'OK fine Do you feel good Thanks Nope Sure '
SELECT
string
, left(value,1)
FROM
#temp
cross apply
string_split(String,' ',1)
WHERE
ordinal = 7