我有一个名为&#34的SQL数据库列;详细信息"总是遵循模式
AAA (BBB, DD-MM-YYYY, CCC);
其中A,B和C可以是任何长度。我提取BBB的查询是
SELECT
[Number]=substring([Details], patindex('% (%', [Details])+2,patindex('% (%, %',[Details]))
FROM tablename
但是,我遇到了让查询停在正确位置的问题。它每次返回8个字符,从BBB的开始算起。我怀疑我在查询中使用了第二个PATINDEX函数会对此产生影响,但是我不确定我可以使用哪些函数或参数。
答案 0 :(得分:0)
这样的事情怎么样:
select substring(
details,
charindex('(', details) + 1,
charindex(',', details) - charindex('(', details) - 1)
答案 1 :(得分:0)
您可以使用PARSENAME
和CHARINDEX
的组合来查找字符串:
SELECT RIGHT(PARSENAME(REPLACE([Details],',','.'),3),CHARINDEX('(',REVERSE(PARSENAME(REPLACE([Details],',','.'),3)))-1)