如何将COD列按指定长度拆分至3列(1/2/3位)?
拆分COD列的实现方案
以下是几种常见工具下的实现方案,满足将6位COD值拆分为1位、2位、3位的三列需求:
Excel/Google Sheets 实现
直接使用文本提取函数处理:
- CODA(提取第1位):
=LEFT(TEXT(A2,"000000"),1)
用TEXT函数确保COD是6位文本格式(避免数字开头的0丢失),再用LEFT取第1位 - CODB(提取第2-3位):
=MID(TEXT(A2,"000000"),2,2)MID函数从第2位开始,提取2个字符 - CODC(提取第4-6位):
=MID(TEXT(A2,"000000"),4,3)
从第4位开始,提取3个字符
把公式下拉填充即可批量处理所有行。
Python Pandas 实现
通过字符串切片快速拆分:
import pandas as pd # 假设数据已读入DataFrame df = pd.read_csv("your_data.csv") # 先将COD转为6位字符串(确保格式统一) df["COD_str"] = df["COD"].astype(str).str.zfill(6) # 拆分列 df["CODA"] = df["COD_str"].str[0] df["CODB"] = df["COD_str"].str[1:3] df["CODC"] = df["COD_str"].str[3:6] # 可选:删除临时的COD_str列 df = df.drop("COD_str", axis=1)
str.zfill(6)会自动给不足6位的数字补前导0,保证拆分逻辑统一。
SQL 实现
根据不同数据库使用对应的字符串截取函数:
MySQL/MariaDB
SELECT COD, SUBSTRING(CAST(COD AS CHAR(6)), 1, 1) AS CODA, SUBSTRING(CAST(COD AS CHAR(6)), 2, 2) AS CODB, SUBSTRING(CAST(COD AS CHAR(6)), 4, 3) AS CODC FROM your_table;
SQL Server
SELECT COD, SUBSTRING(CAST(COD AS VARCHAR(6)), 1, 1) AS CODA, SUBSTRING(CAST(COD AS VARCHAR(6)), 2, 2) AS CODB, SUBSTRING(CAST(COD AS VARCHAR(6)), 4, 3) AS CODC FROM your_table;
Oracle
SELECT COD, SUBSTR(TO_CHAR(COD, 'FM000000'), 1, 1) AS CODA, SUBSTR(TO_CHAR(COD, 'FM000000'), 2, 2) AS CODB, SUBSTR(TO_CHAR(COD, 'FM000000'), 4, 3) AS CODC FROM your_table;
TO_CHAR(COD, 'FM000000')用于将数字转为无空格的6位文本,避免前导0丢失。
内容的提问来源于stack exchange,提问作者mattiadt
相关产品推荐
相关产品推荐

