循环以将记录值选择为变量,然后将值匹配到第一个变量,然后更新该记录

时间:2019-02-05 18:13:31

标签: sql sql-server tsql

尝试使用串联值更新SQL值。例如,现有表具有名为PONumber的列。用户将一些数字存储为4444,而一些数字存储为4444.00。我们想用附加的.00更新列出为4444的所有数字。我找到了变量,并确定了串联,并将两者绑定在一起。我只是迷失了获取然后更新它的循环。我假设为此需要一个临时表,还是可以仅将一组变量用于旧数字,附加值和新数字?

DECLARE @ponumb nvarchar(255)

DECLARE @append nvarchar(255) = '-00'

DECLARE @BIND nvarchar(255) = CONCAT (@ponumb, @append) 

CREATE TEMPORARY TABLE IF NOT EXISTS cache (SELECT @ponumb = PONumber FROM TABLE1 where PONumber not like '%-00%');


UPDATE TABLE1 SET PONumber=@BIND WHERE PONumber IN (SELECT PONumber FROM cache);

END;

需要将PONumber更新为所有后缀-00

1 个答案:

答案 0 :(得分:2)

这是您想要做的吗?

UPDATE TABLE1
    SET PONumber = PONumber + '.00'
    WHERE PONumber NOT LIKE '%.00';