admin

我需要删除小数点后的前导零

sql

这是我第一次在这里发布信息,我是SQL的基本用户,需要帮助。

我有一varchar列存储如下数据:

Year.Docid
2007.000000001
2007.000000002
2007.000000003
2007.000000004
2007.000000005
2007.000000006

我需要将此数据连接到小数点后没有全零的另一个表中,有人可以告诉我如何获取数据,如下所示:

Year Docid
2007.1
2007.2
2007.3
2007.4
2007.5
2007.6

我正在使用MICROSOFT SQL SERVER 2012


阅读 150

收藏
2021-06-07

共1个答案

admin

如果格式是固定的,即YYYY.NNNNNNNNN,您只可以获取最后9个字符,将它们转换为int,将结果转换回varchar并连接回前5个字符:

LEFT([Year.Docid], 5) + CAST(CAST(RIGHT([Year.Docid], 9) AS int) AS varchar(10))

但是,将Year和Docid作为两个单独的int列存储在两个表中会更有意义。只为输出而组装它们比每次处理 并结合 其结果要容易得多。

2021-06-07