sql - 查找两个字符 '(' 和 ')' 之间的值
问题描述
我有一个字符串值'Marquez,Gabriel Garcia。(A123456)'。我需要提取出现在“(”和“)”中的值。换句话说,我需要结果显示“A123456”
我尝试过使用正确的功能,但这并没有产生预期的结果。
select right('Marquez, Gabriel Garcia. (A123456)' , 8)
解决方案
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)
推荐阅读
- passwords - 在 Hybris 6.7 中为 hac 和 BackOffice 中的用户凭据设置密码策略
- node.js - 如何通过 mongodb nodejs 的平均评分加入产品来获得价值?
- powershell - Powershell 脚本将检测客户端和服务器上安装的软件
- ruby-on-rails - 想在 Mac OS Majove 上安装 rails / nokogiri - 但失败了
- python - 向空数据框 pandas Python 3.5.0 添加索引
- c# - 如何从 C# 中的泛型类型数组中选择一组随机值?
- c# - C# 方法有 1 个参数,但使用 2 个参数调用
- nginx - 在 nginx 中重写尾随 & 符号,没有 301
- python - 如何使用 findall 将文件拆分为多个文件
- c++ - 将项目从 Debian 8 Xenomai 2.x 迁移到 Debain 9 Xenomai 3.x