0

我需要编写一个更新,该更新需要用户输入文本(如下)并运行有效的更新(需要这样做)。我认为我需要使用某种类型的循环或游标。参考列可能有其他文本,而不仅仅是“燃料=?”。用户知道格式必须是 'FUEL=?' 使此更新生效。我目前无法向表中添加附加列。我是新来的……谢谢你的帮助!!

用户输入将如下:

燃料组 = A, C

新附加费 = 2

需要这样做

update tblroutes
set DriverSurcharge = 2
where Reference like '%FUEL=A%' or  Reference like '%FUEL=C%'

表开始

路线ID | 参考 | 附加费

F01 | Windows 燃料=A | 0

F02 | 燃料=A | 0

F03 | 燃料=B | 0

F04 | 赢得 8 燃料=B | 0

F05 | 燃料=C | 0

F06 | 燃料=C MAC | 0

F07 | 燃料=D | 0

想要的最终结果

路线ID | 参考 | 附加费

F01 | Windows 燃料=A | 2

F02 | 燃料=A | 2

F03 | 燃料=B | 0

F04 | 赢得 8 燃料=B | 0

F05 | 燃料=C | 2

F06 | 燃料=C MAC | 2

F07 | 燃料=D | 0

我可以一次更新 1 个“燃料组”,但希望用户能够一次将更新运行到他们想要的任意数量的组。

DECLARE @Surcharge INT
DECLARE @Group Varchar

--This will give the user a input box for surcharge amount
--SET @Surcharge= '<< Please enter surcharge amount. >>'
----This will give the user a input box for fuel group(s)
--SET @Group= '<< Please enter fuel group(s). >>'

--If the user entered 4 & A
SET @Surcharge= '4'
SET @Group= 'A'

update tblroutes
set DriverSurcharge = @Surcharge
where Reference like '%FUEL='+@Group+'%'

现在如果用户输入 Fuel Group = A, C 我该如何处理

4

1 回答 1

0

如果我理解正确,您的主要问题是在 SQL 中解析用户输入。解析实际上意味着拆分字符串。只要您在临时表或表变量中有单独的值,您就可以在循环中运行您的(已经创建的)查询。

看看这个问题和答案:如何拆分字符串以便可以访问项目 x?

于 2013-01-05T21:01:48.897 回答