You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server:如何从NVarchar字段提取Account Number与SWIFT间的值?

提取SQL Server NVarchar字符串中指定区间的账号值

针对你这个需求,在SQL Server里有几种实用的方法可以精准提取Account Number:和SWIFT之间的账号值,我给你详细说明:

方法一:基础字符串函数组合(兼容所有SQL Server版本)

这是最通用的方案,不依赖高版本特性,用SUBSTRING+CHARINDEX+LEN的组合就能实现:

SELECT 
    -- 提取目标区间的内容
    SUBSTRING(
        YourColumnName, -- 替换成你的实际列名
        -- 计算起始位置:跳过"Account Number:"及后面的空格
        CHARINDEX('Account Number:', YourColumnName) + LEN('Account Number:') + 1,
        -- 计算截取长度:用SWIFT的起始位置减去前面的起始位置
        CHARINDEX('SWIFT', YourColumnName) - (CHARINDEX('Account Number:', YourColumnName) + LEN('Account Number:') + 1)
    ) AS ExtractedAccountNumber
FROM YourTableName; -- 替换成你的实际表名

代码说明:

  • CHARINDEX('Account Number:', YourColumnName):定位Account Number:在字符串中的起始位置
  • LEN('Account Number:'):计算起始标识的长度,加1是为了跳过标识后面的空格
  • 最后用SWIFT的起始位置减去前面的起始位置,得到需要截取的字符串长度

方法二:正则表达式(SQL Server 2017及以上版本)

如果你的SQL Server版本是2017或更高,可以用REGEXP_REPLACE结合正则表达式,写法更简洁:

SELECT 
    -- 用正则捕获目标内容,并去除前后可能的空格
    TRIM(REGEXP_REPLACE(YourColumnName, '.*Account Number:\s*(.*?)\s*SWIFT.*', '$1')) AS ExtractedAccountNumber
FROM YourTableName;

正则说明:

  • .*:匹配任意字符(非贪婪模式前的前缀内容)
  • Account Number:\s*:匹配起始标识及后面的任意空格
  • (.*?):非贪婪捕获组,精准匹配到SWIFT前的目标内容
  • \s*SWIFT.*:匹配SWIFT前的任意空格及后面的所有内容
  • $1:引用捕获组的内容,也就是我们要提取的账号值

边界情况处理

如果存在字符串中没有Account Number:或SWIFT,或者两者顺序颠倒的情况,可以加判断避免返回无效值:

SELECT 
    CASE 
        WHEN CHARINDEX('Account Number:', YourColumnName) > 0 
             AND CHARINDEX('SWIFT', YourColumnName) > CHARINDEX('Account Number:', YourColumnName)
        THEN SUBSTRING(
                YourColumnName,
                CHARINDEX('Account Number:', YourColumnName) + LEN('Account Number:') + 1,
                CHARINDEX('SWIFT', YourColumnName) - (CHARINDEX('Account Number:', YourColumnName) + LEN('Account Number:') + 1)
            )
        ELSE '未找到有效账号'
    END AS ExtractedAccountNumber
FROM YourTableName;

内容的提问来源于stack exchange,提问作者Etienne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:01:53