Sql 循环将一个记录值选择到变量中,然后将一个值连接到第一个变量中,然后更新该记录

Sql 循环将一个记录值选择到变量中,然后将一个值连接到第一个变量中,然后更新该记录,sql,sql-server,tsql,Sql,Sql Server,Tsql,正在尝试使用连接的值更新SQL值。例如,现有表具有名为PONumber的列。有些数字由用户存储为4444,有些则存储为4444.00。我们想用附加的.00更新列为4444的所有数字。我已经计算出变量和连接,并将两者绑定在一起。我只是迷失在获取然后更新的循环中。我假设我需要一个临时表,或者我可以用一组变量来表示旧的数字、附加值和新的数字吗 DECLARE @ponumb nvarchar(255) DECLARE @append nvarchar(255) = '-00' DECLARE @B

正在尝试使用连接的值更新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以使所有PONUMBER都有一个尾随-00,这是您想要做的吗

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

我看了这个,它并没有真正涵盖我的问题。可能就是这样!如果它返回多条记录,会发生什么情况?它会用后面的.00来更新特定的POnumber吗\我创建了两个测试记录,并将where子句设置为目标,它完美地更新了它们!哇,那太愚蠢了<代码>其中PONumber='911911'或PONumber='922922'谢谢您的帮助!!