当前位置: 首页 > 面试题库 >

如何用唯一值更新表中的列,但不更新所有行,不递增[重复]

阚英睿
2023-03-14
问题内容

这个问题已经在这里有了答案

8年前关闭。

可能重复:
是否可以使用单个UPDATE
SQL语句执行多个更新?

我正在更新具有特定列的一些新值的表,如下所示,所以我在prepayId指示的某些流量上更新了表Prepay,列PrepayTransactionDesc

update Prepay
set PrepayTransactionDesc = 'Funded Repeat Voucher 153429'
where prepayId = 58045

它工作正常,但我想进行多次更新。我尝试了几种不同的方法,但是失败了。那是我试图做到的,时不时地使用CASE。

例如,我有以下prepayid和prepaytransactiondesc字段

57770   Funded Repeat Voucher 153118
57771   Funded Repeat Voucher 153119
57772   Funded Repeat Voucher 153120
57773   Funded Repeat Voucher 153121
57774   Funded Repeat Voucher 153122
57775   Funded Repeat Voucher 153123
57776   Funded Repeat Voucher 153124
57894   Funded Repeat Voucher 153276
57895   Funded Repeat Voucher 153277
57896   Funded Repeat Voucher 153278

我怎么做他们一口气?不可能那么困难,但是当我尝试执行任务时,我似乎缺少了一些东西。


问题答案:

你可以试试

UPDATE Prepay
SET PrepayTransactionDesc = 
   CASE
     WHEN prepayID = 57770 THEN 'Funded Repeat Voucher 153118'
     WHEN prepayID = 57771 THEN 'Funded Repeat Voucher 153119'
     WHEN prepayID = nextID THEN 'Next Value' 
   END
WHERE  prepayID in (1,2,4,57770... all your ids here)


 类似资料:
  • 问题内容: 我在PostgreSQL中有一个表,该表具有应该是唯一的ID列。但是,当前许多行(大约300万行)的ID为“ 1”。 我知道的: 总行数 ID列的当前最大值 ID(不正确)为“ 1”的行数 我需要的是一个查询,该查询将提取ID为“ 1”的所有行,并为其分配一个新ID,该ID自动递增,以便表中的每一行都具有唯一的ID。我希望它从开始,并为每行分配后续ID。 这是我得到的最接近的查询: 问

  • 问题内容: 我想更新表中的一个字段,以便所有行都具有与第一行相同的值。我认为这很简单: 但是MySql不喜欢那样。 问题答案: 您可以将子查询嵌套在另一个查询中:

  • 我基本上是在中更新一个值,并使用将其发送到片段。所有片段都应该在上显示相同的值。 我的问题是我的应用程序有3个片段页面,只有中间的页面(Fragment_B)在更新... 为什么所有的片段不同时更新?该值从不显示在Fragment_A和fragment_c上。 应该更新所有的片段,但它只更新片段B。但是我试图调试这个问题,并创建了和SetText,它适用于每个片段。我不知道为什么会这样。有人能帮帮

  • 我正忙着创建VB. Net Windows应用程序。我正在使用带有名为skedulering的表的microsoft sql服务器数据库。我正在尝试使用基于另一列(即Kode)的唯一值更新一列(即Groep)。此值接受Kode值的前三个字符并向其添加一个整数。我认为我的意思最好用以下内容来解释: 所有红色边框行都具有相同的Groep值。有人能帮我创建sql语句吗? 问候

  • 问题内容: 使用MS SQL Server,以下工作正常: 但是,使用PostgreSQL,以下操作将失败: 错误:重复的键值违反了唯一约束“ tbl_test_pkey”详细信息:键(testkey)=(2)已存在。 我需要在一个表中增加一列的每个值,这是复合唯一约束的一部分。如何在一份声明中做到这一点? 谢谢 ! 编辑:如果您想知道为什么这样做(至少对我而言),那么这是一个更完整的方案。 我有

  • 我正在尝试在现有列表中添加一个新项目,但无法添加。当我调试时,它显示返回为true,但最终新项没有添加到列表中。 我的示例代码如下:Employee employee1=new Employee(5001,“BOB”,financeDept.getDepartment_name());employee2=新员工(5002,“SAM”,FinanceDepartment.getDepartment_