【问题标题】:Update all rows with different values. When where conditions differ使用不同的值更新所有行。当条件不同时
【发布时间】:2021-04-07 23:20:15
【问题描述】:

提前为令人困惑的标题道歉,但找不到正确的方法在标题中总结它。

我在 SQLite Studio 中有一个表,其中包含四列 ID、名称、Tm(表示团队)和 TmID (TeamID),共有 326 行

314 Tyler Wade      NYY  NULL
315 Marcus Walden   BOS  NULL
316 Jared Walsh     LAA  NULL
317 Donovan Walton  SEA  NULL
318 Taylor Ward     LAA  NULL
319 Joey Wendle     TBR  NULL


UPDATE TeamID
SET TmID = 1
WHERE Tm = 'NYY';

显然,上面的查询允许我更新团队为“NYY”的每一行,但我找不到在一个大查询中更新所有 15 个团队的方法(除了可能在 SQLite 中有点麻烦的事务工作室)。我想为每个团队分配自己唯一的序列号。

提前致谢。

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    使用case 语句会是这样的:

    UPDATE TeamID
    SET TmID = case Tm when 'NYY' then 1
                       when 'BOS' then 2
                       when 'LAA' then 3
                       when 'SEA' then 4
                       when 'TBR' then 5               
                end
    

    【讨论】:

    • 啊,谢谢,我在尝试 case 语句时似乎弄乱了语法。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多