ok -- that makes more sense.Something like thisBEGIN TRANDECLARE @sample TABLE ( [value] VARCHAR(512) )INSERT @sampleVALUES ('sometextsometextMAIL_ID:12345sometextsometext') , ('sometextsometextMAIL_ID:6544478sometextsometext') , ('sometextsometextMAIL_ID:645215648sometextsometext') , ('') , (NULL) , ('asadasdMAIL_ID:1')SELECT [RawValue] , CASE WHEN rp.[trimmedValue] LIKE '%[^0-9]%' THEN LEFT(rp.[trimmedValue], PATINDEX('%[^0-9]%', [rp].[trimmedValue]) - 1) ELSE rp.[trimmedValue] END AS [Trimmed Value]FROM ( SELECT [value] AS [RawValue] , CASE WHEN [value] LIKE '%MAIL_ID:%' THEN RIGHT([value], LEN([value]) - PATINDEX('%MAIL_ID:%', [value]) - 7) ELSE NULL END AS [trimmedValue] FROM @sample ) AS rp ROLLBACK
I've tried to make it safe so that it doesn't die on unexpected strings but your milage may vary.ResultsRawValue Trimmed Value-------------------------------------------------- --------------------------------------------------sometextsometextMAIL_ID:12345sometextsometext 12345sometextsometextMAIL_ID:6544478sometextsometext 6544478sometextsometextMAIL_ID:645215648sometextsometext 645215648 NULLNULL NULLasadasdMAIL_ID:1 1
Charlie===============================================================Msg 3903, Level 16, State 1, Line 1736The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION