String Function to Get Left 1000, But Only To Last Period or Carriage Return I have blocks of text, anywhere between 500 and 2000 characters long. 

What I need to be able to do is take a maximum of 1000 characters from the description but only to the last full stop or carriage return (Char(13)), so that the text isn't cut off mid-sentence. Should there be both periods and Char(13)'s I would ideally like it to cut if off at the period.

I'm pasting some randomly generated text to try and show what I mean.


  *Up unpacked friendly ecstatic so possible humoured do. Ample ended might folly quiet one set spoke her. We no am former valley assure.
  Four need spot ye said we find mile. Are commanded him convinced
  dashwoods did estimable forfeited. Shy celebrated met sentiments she
  reasonably but. Proposal its disposed eat advanced marriage sociable.
  Drawings led greatest add subjects endeavor gay remember. Principles
  one yet assistance you met impossible. The who arrival end how fertile
  enabled. Brother she add yet see minuter natural smiling article
  painted. Themselves at dispatched interested insensible am be
  prosperous reasonably it. She boisterous use friendship she dissimilar considered expression. Sex quick arose mrs lived. Mr things do plenty others an vanity myself
  waited to. Always parish tastes at as mr father dining at. Led ask
  possible mistress relation elegance eat likewise debating.  
  
  Or am nothing amongst chiefly address. The its enable direct men
  depend highly. Ham windows sixteen who inquiry fortune demands. Is be
  upon sang fond must shew. Really boy law county she unable her sister.
  Feet you off its like like six. Among sex are leave law built now. In
  built table in an rapid blush. Merits behind on afraid or warmly. In either so spring wished. Melancholy wayBy message*


I would want to be able to return all text up to "chiefly address." (990 characters).
Edit: This was posted to address an earlier version.

The left 1000 characters are easy.

Then find the first period in the reverse of the left 1000. That's how much you should subtract from the original 1000.

Like:

LEFT(@s, 
    1001-
    CHARINDEX('.', 
        REVERSE(LEFT(@s,1000))
    )
)


...I think - you may have to add one somewhere if it wipes the period or leaves a space.