实现要求:如 YD01,要变成固定6位长度,YD0001
解决思路:
1 要求出数字出现的第一个位置PATINDEX('%[0-9]%',FIELD)。
2 然后可以取出前缀
3 取出数字
4 然后用right方法根据字本身长度和固定长度自动补0
SELECT *
INTO #TEST
FROM
(
SELECT F1='YDM01'
UNION
SELECT F1='YD02'
UNION
SELECT F1='Y002'
) A
SELECT * FROM #TEST
SELECT F1,
PATINDEX('%[0-9]%',F1) FIRST_NUM_POS,
SUBSTRING(F1,1,PATINDEX('%[0-9]%',F1)-1) QZ,
SUBSTRING(F1,PATINDEX('%[0-9]%',F1),LEN(F1)-(PATINDEX('%[0-9]%',F1)-1)) NUM ,
SUBSTRING( F1,1,PATINDEX('%[0-9]%',F1)-1)+RIGHT('000000'+SUBSTRING(F1,PATINDEX('%[0-9]%',F1),LEN(F1)-(PATINDEX('%[0-9]%',F1)-1)),6-len(SUBSTRING(F1,1,PATINDEX('%[0-9]%',F1)-1))) DM
FROM #TEST

![[手游] 三网H5小游戏【少年仙路】WIN系服务端+Linux手工服务端+详细搭建教程](https://cdn.jxasp.com:9143/image/20260615/136BC33AA47EB0D84E878835A8B38FDB.png)

















