如何匹配两列对应数字?SQL提取custid中与id匹配的末尾数字
从custid提取匹配Id的数字部分的SQL方案
根据你的固定数据格式(custid为字母前缀+00+Id数字,Id与custid末尾数字长度一致),可以用以下几种SQL方法实现需求:
方法1:按Id长度截取custid末尾字符
适用于Id长度统一的场景,动态匹配长度,兼容性强:
MySQL
SELECT Id, RIGHT(custid, LENGTH(Id)) AS custid FROM your_table;
SQL Server
SELECT Id, RIGHT(custid, LEN(Id)) AS custid FROM your_table;
Oracle
SELECT Id, SUBSTR(custid, -LENGTH(Id)) AS custid FROM your_table;
方法2:按固定前缀长度截取
如果custid的前缀长度固定(比如示例中是2个字母+2个0,共4位前缀),直接从第5位开始截取更高效:
MySQL/Oracle
SELECT Id, SUBSTR(custid, 5) AS custid FROM your_table;
SQL Server
SELECT Id, SUBSTRING(custid, 5, LEN(custid)) AS custid FROM your_table;
两种方法都能得到你需要的结果,可根据实际数据库类型和格式细节选择。
内容的提问来源于stack exchange,提问作者Unknown Account
相关产品推荐
相关产品推荐

