sql查询来操纵字符串

时间:2014-03-03 04:29:00

标签: sql sql-server tsql

我有一个名为“path”的表,其中一列名为“路径文件名”,它包含如下内容:

1. U:01.03.141878Box1819P3FarihaTanzir(Moniruzzaman)0103141(756).jpg
2. U:01.03.141876Box1807P3Arif(Mahfuz)151213Picture 96609.jpg 
3. U:01.03.141130Box1781P3RakhiSwpna(Farah)0103141 (1486).jpg 
4. U:01.03.141952Box1810P1Sufia(Jakia)010314Picture 25304.jpg

我想在第一个大括号()中获取名称,如:1.Moniruzzaman 2.Mahfuz 3.Farah 4.Jakia

我左右使用了patindex(),charindex()和substring函数的组合,但无法获得所需的结果。

2 个答案:

答案 0 :(得分:1)

以下是使用stuff()两次的方法:

select stuff(stuff(col, charindex(')', col), len(col), ''),
                   1, charindex('(', col), '')

您可以通过添加:

来测试它
from (select 'asbc(axx)asfdsf(123)d' as col) t

这假设第一个关闭paren())出现在第一个开始paren(()之后。

答案 1 :(得分:1)

试试这个: -

Declare @var varchar(100) 
Set @var ='U:01.03.141878Box1819P3FarihaTanzir(Moniruzzaman)0103141(756).jpg'

Select substring(@var,
                charindex('(',@var)+1,
                                   charindex(')',@var)-charindex('(',@var)-1)

SQL FIDDLE DEMO