2013-07-08 83 views
0

一个文本内容的一部分。如果我有一个像如何获得从SQL Server

I Love you and you love me [end] a lot of people hate us 

字符串我怎么会写一个T-SQL SELECT声明,其中我能得到这个角色

I Love you and you love me 
只有

?应该忽略[end]之后的所有内容。

+0

接的[这些](http://msdn.microsoft.com/en-us/library/ms181984.aspx)功能的一个。子串可能?还是离开?结合Charindex? – rene

+0

@Rene - 谢谢。困难在于它不是一个固定长度的字符串。 – user2103670

+0

这可以用charindex解决,看我的回答 – rene

回答

0

这个TSQL语句只使用LEFTCHARINDEXLENCASE

DECLARE @str nvarchar(250) 
    SELECT @str = 'I Love you and you love me [end] a lot of people hate us' 

    SELECT LEFT(@str, 
      case when CHARINDEX('[end]',@str)>0 
       then CHARINDEX('[end]',@str)-1 
      else LEN(@str) end) -- use 0 if you want an empty string to be returned 
+0

感谢错误处理。只是一个扩展到这个问题,如果没有找到[END],我希望它返回整个文本而不是0.我应该怎么做?我试过SELECT @str而不是0,但是,它不起作用 – user2103670

+0

我知道返回整个字符串 – rene

+0

谢谢 - 我真的很感谢 – user2103670