--DECLARE @String VarChar(MAX) = '0005 ganeshkumar A999';--DECLARE @String VarChar(MAX) = 'first second third fourth';DECLARE @String VarChar(MAX) = 'first second';DECLARE @EndString VarChar(MAX);SET @EndString = LTRIM(REVERSE(LEFT(REVERSE(@String),PATINDEX('% %',@String))));SELECT @EndString
select parsename(replace('0005 ganeshkumar A999',' ','.'),1)
--first some sample dataIF OBJECT_ID('tempdb..#TempTable') IS NOT NULLDROP TABLE #TempTableCREATE TABLE #TempTable ( [ID] INT IDENTITY(1,1) NOT NULL, [Address] NVARCHAR(50) NULL, PRIMARY KEY (ID))INSERT INTO #TempTableSELECT '1 north main st'UNIONSELECT '12 main steet'
SELECT ID ,[1]+[2] AS StreetFROM ( SELECT tt.ID ,dsk.ItemNumber ,dsk.Item FROM #TempTable AS tt CROSS APPLY dbo.DelimitedSplit8K(tt.Address,' ') AS dsk WHERE ItemNumber IN (1,2) ) AS srcPIVOT (MAX(Item) FOR ItemNumber IN ([1],[2])) AS pvt
WITH MyData ([address]) AS ( SELECT '1 north main st' UNION ALL SELECT '12 main street' UNION ALL SELECT '14 clover avenue')SELECT [address], [address1], [address2]=LEFT([address2], CHARINDEX(' ', [address2])-1)FROM MyData-- Remove extra white spaceCROSS APPLY ( SELECT REPLACE( REPLACE( REPLACE(address, ' ', ' ' + CHAR(7)) ,CHAR(7) + ' ', CHAR(7)) ,CHAR(7), '')) a([address1])CROSS APPLY ( SELECT STUFF([address1], CHARINDEX(' ', [address1]), 1, '')) b([address2])