在SQL Server中用数字更新varchar



在我的表中,我有一个varchar列,我想用另一个数据更新它。varchar列如下所示,例如:AB1600150

我正在尝试更新此列以减少附加的数量,因此列数据将为AB1600149

我执行了这个代码:

UPDATE [SONE].[dbo].[F_DOC] 
SET [DC_Piece] = 'FA' + MAX(RIGHT([DC_Piece], 7)) - 1   
WHERE [cbMarq] = 8

我得到了这个错误:

它在UPDATE语句的定义列表中缺少聚合。

请帮帮我。

试试这个

UPDATE  [SONE].[dbo].[F_DOC] 
SET   [DC_Piece] = 'FA' +  CAST (CAST(RIGHT([DC_Piece],7)AS INT)-1 AS VARCHAR)   
where  [cbMarq]=8

试试这个:

UPDATE  [SONE].[dbo].[F_DOC] 
SET   [DC_Piece] = 'FA' +  RIGHT('0000000', 
                                    CAST(
                                    CAST(right([DC_Piece],7) as int) - 1  as varchar(7), 
                           7) 
WHERE [cbMarq]=8

最新更新