关键词搜索

源码搜索 ×
×

SQL Server中如何实现不固定长度字串前缀后固定长度自动补0

发布2018-08-01浏览3016次

详情内容

实现要求:如 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

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载