我从数据库中选择数据。值为(字段名称为 ADR_KOMP_VL):
4 , 61A, 100, 12, 58, 123C, 6 A, 5
我需要将这些值转换为 3 位数字(除非有字母,则为 4)
所以转换后的值应该是:
004, 061A, 100, 012, 058, 123C, 006A, 005
规则是:
- 始终为 3 位数
- 没有空间
- 如果原始值小于三位数,则在其前面加0。(长度为3)
- 如果原始值包含一个字母,则在其前面加上 0(但长度为 4)
对于“没有空间”部分,我有这个:
select REPLACE(ADR_KOMP_VL, ' ','')
到目前为止我的解决方案是:
SELECT RIGHT('000' + CONVERT(VARCHAR(4),REPLACE(ADR_KOMP_VL, ' ','')), 3)
但这只会给我正确的长度,当值中没有字母时。我的问题是如何处理带有字母的值?