【问题标题】:Update query with one unique value other one with varying values用一个唯一值更新查询,另一个用不同的值更新查询
【发布时间】:2021-08-22 04:08:18
【问题描述】:

想要一个查询,可能是针对以下条件的单个查询

  1. 要更新的第 3 列和第 4 列的值对于所有 4 个 R2IGTNo 列都相同
  2. 有时混合最多只有 3 个,第 4 行可能不会出现
  3. 在 C# 应用程序中,用户将更新第一行(混合 1),其他值必须自动更新,因为值相同。

我需要一个查询,请专家帮忙...谢谢

【问题讨论】:

  • 根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,这些无法通过文本准确描述的事情。请展示您尝试过的内容,并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
  • 感谢指导。我觉得这个网站对格式太敏感了。现在一切都是自动化的。
  • 这 4 行是否有任何通用标识符。如果是,您可以根据该标识符进行更新。

标签: c# sql asp.net sql-server sql-server-ce


【解决方案1】:

用户选择第 1 行,这意味着您的 C# 可以知道“Lot21009BB1C3”(放置文本而不是图像会让我复制它,顺便说一句)但是您编写的 c# 应用程序不知道任何其他行..

这意味着您可以运行查询:

UPDATE t SET HtrOnBy = @HtrOnBy, ChtrOnRemark = @ChtrOnRemark
WHERE R2IGTNo LIKE @R2IGTNo

你的 c# 应该输入以下值:

@HtrOnBy = "Whatever it knows the first row HtrOnBy is"
@ChtrOnRemark = "Whatever it knows the first row ChtrOnRemark is"
@R2IGTNo = firstRowR2IGTNo.Remove(9) + "%"

我们取 R2IGTNo 的前 9 个字符并添加一个百分比。 SQL 将更新所有以这些开头的行,不管是 3 还是 4 等等

如果字符的数量不同,那么你将不得不更聪明地处理你的子字符串,例如寻找数字后面的第一个字符(例如正则表达式)

【讨论】:

  • 哦,谢谢,当然可以。我用下面的 Sql Query 写了我的头发,它工作得很好。你的答案仍然会做同样的事情,所以我将你的答案标记为答案。同时我回答的查询是:UPDATE [tbl1RMWeighingDetails] SET [ChtrOnRemark] = @ChtrOnRemark, [HtrOnBy] = @HtrOnBy WHERE [R2IGTNo] like LEFT(@original_R2IGTNo, PATINDEX('%B1%', @original_R2IGTNo))+'%'
  • 是的,它看起来也可以工作。不要害怕在 C# 中对数据进行一些处理?,例如 r2string.Remove(r2stribg.IndexOf("B1")) 而不是 PATINDEX
  • 是的,谢谢@Caius Jard,这个想法会对我有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 2020-11-13
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
  • 2015-05-09
相关资源
最近更新 更多