当前位置: 首页 > 知识库问答 >
问题:

根据条件逻辑更新表列值

劳研
2023-03-14

我有这样的表:

name | salary 
Tom  | 10000
Mary | 20000
Jack | 30000
Lisa | 40000
Jake | 60000

我需要一个更新查询来根据它包含的值更新salary列。

工资需要增加:

  • 10000到15000之间的值为5000
  • 15000到20000之间的值为7000
  • 20000到30000之间的值为8000
  • 40000到60000之间的值为10000

共有3个答案

商高谊
2023-03-14

只需使用UPDATE语句和CASE语句,其中包含所需的逻辑

UPDATE SalaryTable
SET Salary = 
    (CASE WHEN Salary BETWEEN 10000 AND 14999 THEN Salary + 5000
          WHEN Salary BETWEEN 15000 AND 19999 THEN Salary + 7000
          WHEN Salary BETWEEN 20000 AND 29999 THEN Salary + 8000
          WHEN Salary BETWEEN 40000 AND 59000 THEN Salary + 10000
          ELSE Salary
     END)

我使用了BETWEEN,它计算大于或等于和小于或等于,因此值如14999

此外,在< code>30000和< code>40000之间有一个间隙,这个间隙没有被发现,但我认为这是因为它是伪数据。

参考:

SQL BETWEEN

SQL案例

薛弘济
2023-03-14

像这样:

UPDATE YourTable
SET salary = CASE 
                    WHEN salary > 10000 AND salary <= 15000 THEN salary + 5000
                    WHEN salary > 15000 AND salary <=20000 THEN salary + 7000
                    .
                    .
                    .
                END
左丘照
2023-03-14

尝试在UPDATE命令中使用CASE语句

UPDATE
    [yourtablename]
SET
    salary = 
         CASE 
            WHEN salary BETWEEN 10000 AND 15000 THEN salary + 5000 
            WHEN salary BETWEEN 15000 AND 20000 THEN salary + 7000 
            WHEN salary BETWEEN 20000 AND 30000 THEN salary + 8000 
            WHEN salary BETWEEN 40000 AND 60000 THEN salary + 10000 
            ELSE salary
         END 
 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : SQL UPDATE SET哪一列等于另一列引用的相关表中的值? (10个答案) 7年前关闭。 我有两张桌子 table1(id,item,price)值: .... table2(id,item,price)值: 现在我要: 我该怎么做? 问题答案: 这样的事情应该做到: 您也可以尝试以下操作:

  • Spring批处理 不知道如何实现这一点,但要求是假设我们有条件A/B: > 如果是A-我必须在表D/E/F中更新/删除/插入 如果是B-我必须更新/删除/插入表G/H/I 该事务应该在单个事务中完成,这意味着在条件a下,我必须完成所有3个表的更新-D、E、F。如果任何表失败,则不应部分完成该事务。 正在考虑分类器复合项编写器,但不确定它是否是单个事务。

  • 问题内容: 我有一个表的结构为 现在,我需要执行一个查询, **表中已经 存在 if的 更新 ,如果不是,则在表3中插入记录作为新记录。 这就是我现在在代码中得到的 问题答案: 您可以使用SQL Server中的语法执行“ upsert”操作: 否则,您可以使用类似以下内容的方法:

  • 我有一个pandas数据帧,其中3列X、Y和Z用于分组。我想基于代码中显示的条件为每个组更新列B(或将其存储在单独的列中)。但我得到的最后结果是零。我不确定我做错了什么。 下面是供参考的表格和代码:

  • 问题内容: 从美学角度和性能角度来看,基于条件将项目列表拆分为多个列表的最佳方法是什么?相当于: 有没有更优雅的方法可以做到这一点? 更新:这是实际的用例,以更好地解释我正在尝试做的事情: 问题答案: 有没有更优雅的方法可以做到这一点? 该代码完全可读,而且非常清晰! 再次,这很好! 使用集合可能会稍微改善性能,但这是微不足道的差异,而且我发现列表理解要容易阅读得多,并且你不必担心顺序被弄乱了,重

  • 在本章中,我们将讨论Axure RP中使用的条件逻辑。 如果 - 然后 - 在Axure中 与任何其他编程工具一样,Axure也支持条件逻辑,以在原型中创建增强的交互。 一旦熟悉了如何提供交互,为交互提供条件逻辑就是下一个层次。 以下是条件逻辑的简单流程 - 如果,单击特定小部件/屏幕 然后,执行特定的操作/交互 否则,保持/更改小部件或屏幕的状态 为了更好地理解这一点,让我们从前面的例子中恢复流