sql - REPLACE 函数中的 SQL 使用变量
问题描述
DECLARE
@vLiczba int = 0,
@vWynik varchar (30),
@min int;
BEGIN
WHILE @vLiczba < 1
BEGIN
SET @min = (SELECT MIN(RIGHT(LEFT(query_transaction, 36), 4))
FROM testowa_tabela1
WHERE query_transaction LIKE 'update%');
PRINT 'min value: ' + CAST (@min as varchar(10)) ;
UPDATE testowa_tabela1
SET query_transaction = REPLACE(query_transaction, '@min', '9999')
SET @vLiczba = @vLiczba + 1;
END;
PRINT 'Verified record: ' + CAST (@vLiczba as varchar(10)) + ', min value: ' + CAST (@min as varchar(10)) ;
END;
在第 14 行中REPLACE(query_transaction, '@min', '9999')
,@min 不被视为变量。
你能帮我解决我的问题吗?REPLACE 语句在我检查时在循环中执行,但没有结果。
解决方案
你只需要去掉@min 周围的单引号。使用单引号时,变量被视为字符串,而不是变量。此外,您需要在更新后的语句后加一个分号。所以你更新的代码将是 -
DECLARE
@vLiczba int = 0,
@vWynik varchar (30),
@min int;
BEGIN
WHILE @vLiczba < 1
BEGIN
SET @min = (select min(right(left(query_transaction,36),4))
from testowa_tabela1
where query_transaction like 'update%');
PRINT 'min value: ' + CAST (@min as varchar(10));
UPDATE testowa_tabela1
SET query_transaction = REPLACE( query_transaction,@min,'9999');
SET @vLiczba = @vLiczba + 1;
END;
PRINT 'Verified record: ' + CAST (@vLiczba as varchar(10)) + ', min value: ' + CAST (@min as varchar(10)) ;
END;
推荐阅读
- parse-platform - 重新安装应用程序后无法获取图像
- laravel - 仅重定向当前页面
- chart.js - ChartJS 在折线图中绘制 x/y
- python - 有没有办法在不使用 Webhook 的情况下向 slack 发送 POST 请求?
- c++ - BinarySearchTree 中的 removeNode 方法
- scala - 有什么办法可以在 Scala 中重写这行代码?
- python - numpy.random.choice 的输出看起来好像没有考虑概率列表
- python - 如何从 QTableWidget 列中获取行数据?
- javascript - 我如何处理响应式菜单?
- scala - 如何在 scala sbt 框架中使用 TestNG?