Sql 在小数点后添加尾随零

Sql 在小数点后添加尾随零,sql,sql-server,string,Sql,Sql Server,String,我正在使用具有以下9个字符结构的sku编号: A.三位数字, B一段时间, C五位数 例如:505.12345 sku的末端有相当大的百分比为0。示例:505.12340、505.12300、505.12000 在从S3->SQL Server迁移之后,通过将数据类型设置为varchar,在SQL Server中保留尾随的零没有问题。我在AWS Sagemaker中使用了一个新的机器学习模型,它在迁移到S3之前切断了尾随的零 上面的示例sku现在看起来像:505.1234505.123505.1

我正在使用具有以下9个字符结构的sku编号:
A.三位数字,
B一段时间,
C五位数

例如:505.12345

sku的末端有相当大的百分比为0。示例:505.12340、505.12300、505.12000

在从S3->SQL Server迁移之后,通过将数据类型设置为varchar,在SQL Server中保留尾随的零没有问题。我在AWS Sagemaker中使用了一个新的机器学习模型,它在迁移到S3之前切断了尾随的零

上面的示例sku现在看起来像:505.1234505.123505.12


我的问题:在LEN([sku])<9的情况下,向所有sku添加尾随零的最佳方法是什么?我更愿意将sku数据类型保留为varchar。

如果您有一个字符串,可以用
0
s右键填充它,如下所示:

left(sku + replicate('0', 9), 9)
或者:

sku + replicate('0', 9 - len(sku))

select sku, 
    left(sku + replicate('0', 9), 9) new_sku, 
    sku + replicate('0', 9 - len(sku)) new_sku2
from (values ('505.1234'), ('505.123'), ('505.12'), ('505.12345')) x(sku)
sku |新sku |新sku 2 :-------- | :-------- | :-------- 505.1234 | 505.12340 | 505.12340 505.123 | 505.12300 | 505.12300 505.12 | 505.12000 | 505.12000 505.12345 | 505.12345 | 505.12345
如果您有一个字符串,可以用
0
s右键填充它,如下所示:

left(sku + replicate('0', 9), 9)
或者:

sku + replicate('0', 9 - len(sku))

select sku, 
    left(sku + replicate('0', 9), 9) new_sku, 
    sku + replicate('0', 9 - len(sku)) new_sku2
from (values ('505.1234'), ('505.123'), ('505.12'), ('505.12345')) x(sku)
sku |新sku |新sku 2 :-------- | :-------- | :-------- 505.1234 | 505.12340 | 505.12340 505.123 | 505.12300 | 505.12300 505.12 | 505.12000 | 505.12000 505.12345 | 505.12345 | 505.12345
一种简单的方法是将转换回十进制(9,5),然后再次转换成字符(9)

资料

质疑

输出

char_9
505.12340
505.12300
505.12000

一种简单的方法是将转换回十进制(9,5),然后再次转换成字符(9)

资料

质疑

输出

char_9
505.12340
505.12300
505.12000