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

如何匹配带0填充的table1与无0填充的table2的fiscal_code并提取table2数据?

匹配带前后0填充与无填充的税号字段

要找出table2中与table1实质相等的fiscal_codes,核心是先清理table1字段的前后0,再做关联匹配,以下是具体实现方案:

通用SQL实现

核心思路

通过字符串处理函数去除table1.fiscal_code开头和结尾的所有0,再与table2.fiscal_codes做等值关联,提取匹配的table2记录。

示例代码(MySQL/PostgreSQL适用)

SELECT DISTINCT t2.fiscal_codes
FROM table1 t1
INNER JOIN table2 t2 
  ON TRIM(BOTH '0' FROM t1.fiscal_code) = t2.fiscal_codes;

代码说明

  • TRIM(BOTH '0' FROM t1.fiscal_code):同时清除字段开头和结尾的所有0,例如'0012345'或'123450'都会被处理为'12345'。
  • DISTINCT:避免table2中同一fiscal_codes因多次匹配返回重复结果。

SQL Server适配写法

如果使用SQL Server 2017及以上版本,写法与上述一致;若版本较低,可嵌套使用LTRIM和RTRIM处理:

SELECT DISTINCT t2.fiscal_codes
FROM table1 t1
INNER JOIN table2 t2 
  ON RTRIM(LTRIM(t1.fiscal_code, '0'), '0') = t2.fiscal_codes;

(注:SQL Server 2017+已支持TRIM('0' FROM t1.fiscal_code)语法,优先使用该写法)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:23:30