首页 > 解决方案 > 查找两个字符 '(' 和 ')' 之间的值

问题描述

我有一个字符串值'Marquez,Gabriel Garcia。(A123456)'。我需要提取出现在“(”和“)”中的值。换句话说,我需要结果显示“A123456”

我尝试过使用正确的功能,但这并没有产生预期的结果。

select right('Marquez, Gabriel Garcia. (A123456)' ,  8)

标签: sqlsql-server

解决方案


SQL Server 中的字符串操作很棘手。我发现这cross apply简化了逻辑:

select left(v2.str, charindex(')', v2.str) - 1) as stuff_between_parens
from (values ('Marquez, Gabriel Garcia. (A123456)')) v(str) cross apply
     (values (stuff(str, 1, charindex('(', str), ''))) v2(str)

推荐阅读