• Thank you -

    I figured I was in Tag/end tag territory, rather like HTML markers.

    I had ago at creating a function :

    -------------------------------

    -- create some test data

    CREATE TABLE #tTestData ( MyTextCol VARCHAR(MAX) )

    INSERT INTO #tTestData

    ( MyTextCol

    )

    VALUES ( 'Without a doubt SQLCentral is home to finest SQL folk[comment:#grovel#].

    Sometimes [SQL:SELECT GetDate()]things may get heated[comment:#super hot debate#].

    But [SQL:SELECT GetDate()]great minds find their way[comment:#method to madness?#].

    The rest of us eat Pork Chops[comment:#ha ha:)#].'

    )

    GO

    -------------------------------

    -- function

    -- Brigzy 08-02-10

    CREATE FUNCTION fn_STUFF_Between_Tags

    (

    @SomeText VARCHAR(MAX) ,

    @StartTag VARCHAR(400),

    @EndTag VARCHAR(400),

    @StuffWith VARCHAR(400)

    )

    RETURNS VARCHAR(MAX)

    AS

    BEGIN

    WHILE CHARINDEX(@StartTag,@SomeText ) > 0 AND CHARINDEX(@EndTag,@SomeText ) >0

    SELECT @SomeText = ISNULL(

    STUFF(@SomeText , -- Start with this text

    CHARINDEX(@StartTag,@SomeText ), -- Stuff from Start tag location

    -- Stuff length = end tag location - start tag location + end tag length

    CHARINDEX(@EndTag,@SomeText, /* look for end tag after start location->*/

    CHARINDEX(@StartTag,@SomeText ) )

    - CHARINDEX(@StartTag,@SomeText ) --

    + DATALENGTH(@EndTag),

    @StuffWith)

    ,'')

    RETURN @SomeText

    END

    GO

    -------------------------------

    -- Test it

    SELECT dbo.fn_STUFF_Between_Tags(MyTextCol, '[COMMENT:#',']','')

    FROM #tTestData

    GO

    -------------------------------

    -- clean up

    DROP FUNCTION fn_STUFF_Between_Tags

    DROP TABLE #tTestData

    I think though it is very RBAR - and needs a Jeff Tally table conversion

    [Edit:just like you say BitBucket]...

    [Edit: special thanks Lowell this is based on your SQL]