sql - 是否可以从键/值对更新行?

标签 sql sql-server

举例说明:

UPDATE Table SET value=(22,55,99) WHERE id IN (2,5,9)

因此,id=2 的行,value 设置为 22。并且 id=5 的行,value 设置为 55。等等

最佳答案

您可以使用派生表:

update t set
    value = a.value
from Table as t
    inner join (values
        (22, 2),
        (55, 5),
        (99, 9)
    ) as a(id, value) on a.id = t.id

对我来说,这是最优雅的方式,而且它也很容易扩展(如果您愿意,您可以添加更多列)

关于sql - 是否可以从键/值对更新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632765/

相关文章:

node.js - Sequelize 无法通过网络连接到 SQL Server

sql - 如何在 SQL Server 中查找列中的重复文本并删除重复项

SQL Server 从查询返回的表中选择作为表名列表

mysql - SQL/MySQL - 按列长度排序

php - 使用php将数组插入mysql

mysql - 简单的sql连接

c# - 从数据库中回调 jQuery widget 信息,并在合适的位置显示 widget

SQL - 从动态 SQL 中获取百分比差异

sql - 按有序表上的最大日期删除重复行

sql - 从单列 MySQL 中的所有行中剥离 0