2013-01-24 23 views
1

字符串的一部分,我有一個字符串,形式提取使用SQL

Text I Want to Discard (TEXT I WANT) 

我只希望包含在括號中的字符串的一部分。我如何去獲取這個子字符串?

+0

您使用的RDBMS是什麼? – Taryn

+0

SQL Server 2005 –

+0

所有的答案在這裏 - SUBSTR/INSTR函數:http://stackoverflow.com/questions/14483667/select-part-of-word-from-query/14484104#14484104 – Art

回答

3

如何:

select substring(col, charindex('(', col), len(col)) 
from yourtable; 

SQL Fiddle with Demo

或者檢查這兩個支架。這得到左括號(的位置,然後返回開閉架之間的字符串的長度:

select substring(col, charindex('(', col), charindex(')', col) - charindex('(', col) +1) 
from yourtable; 

SQL Fiddle with Demo

+0

不要忘記檢查右括號 - 可能在字符串中的其他地方。 – Paul

0

試試下面的......它的工作原理...

DECLARE @c varchar(100) 
SET  @c = 'Text I Want to Discard (TEXT I WANT)' 
SET @c = Replace(Replace(@c,')','_'),'(','_'); 
SELECT SUBSTRING(
    @c, 
    CHARINDEX('_', @c) + 1, 
    LEN(@c) - CHARINDEX('_', @c) - CHARINDEX('_', REVERSE(@c)) 
) 
+1

這隻給了我沒有字符串任何括號或空格? –

+0

現在我編輯查詢...現在嘗試它的工作完美.. – Pandian