修改SQL表中的现有小数位

时间:2019-04-04 17:03:36

标签: sql-server tsql

我有一张桌子StudentInfo

report_hist <- function(n){
  hist(rnorm(n))
}

对于HDT 3300,我想删除小数点后的0。应该是CR100.001

  StudentID  HDT      Code        NAME  
    1233    3300    CR100.0001   Jorge
    1353    3300    CR400.0002   Jorge
    1235    3300    WE1554.002   Jessica
    5536    3300    WE568.002      Tim
    1234    3301    QA1233.001    Steve
    1235    3300    WE1554.002   Jessica
    5536    3300    WE568.002      Tim

问题在于HDT 3300包含几条记录,其中包含三位小数和四位小数。不知道如何仅更改HDT 3300的特定记录。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

如果您希望对此进行永久更改:

t1.bound

Here是db <>小提琴,它说明了此方法。

答案 1 :(得分:2)

您可以使用REPLACELIKE使用以下解决方案:

UPDATE StudentInfo 
    SET Code = REPLACE(Code, '.000', '.00') 
WHERE HDT = 3300 AND Code LIKE '%.000[1-9]';

demo on dbfiddle.uk


asked a similar question几周前在小数点后加了零。可接受的答案如下:

UPDATE StudentInfo
SET HDCOD=REPLACE(HDCOD,'.','.0')
WHERE HDTYPID=3300

此解决方案与再次删除添加的零完全相反(类似于@Gordon的解决方案):

UPDATE StudentInfo
SET HDCOD=REPLACE(HDCOD,'.0','.')
WHERE HDTYPID=3300