操作字符串的sql查询

操作字符串的sql查询,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个名为“path”的表,其中有一列名为“path file name”,它包含如下内容: 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

我有一个名为“path”的表,其中有一列名为“path file name”,它包含如下内容:

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.莫尼鲁扎曼2.马哈福兹3.法拉4.雅基亚


我将patindex()、charindex()和substring函数与left和right组合使用,但未能获得所需的结果。

下面是一个使用
stuff()
两次的方法:

select stuff(stuff(col, charindex(')', col), len(col), ''),
                   1, charindex('(', col), '')
您可以通过添加以下内容对其进行测试:

from (select 'asbc(axx)asfdsf(123)d' as col) t
这假设第一个关闭参数(
)出现在第一个打开参数(
)之后。请尝试以下操作:-

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)

CHARINDEX(REVERSE(string))应该有助于得到最右边的)和(,然后一个简单的子字符串将得到结果。注意()是“括号”-大括号是{}。请编辑您的问题并包括您尝试的查询。它是否始终是包含所需项目的第一组括号?我使用了如下查询:选择大小写,当CHARINDEX('(',[path file name])>0,然后左([path file name],CHARINDEX('),[path file name]))或者[path file name]将[path file name]结束为[names]从(选择CHARINDEX('),[path file name])>0时的大小写,然后从[path])x中替换(右([path file name]、CHARINDEX('),[wallet])-1、'),'')或[path file name]结束[path file name]