首页 > 解决方案 > 使用不同的值更新所有行。当条件不同时

问题描述

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

我在 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 Studio 中有点麻烦的事务)。我想为每个团队分配自己唯一的顺序 ID 号。

提前致谢。

标签: sqlsqlite

解决方案


case通过 using语句会是这样的:

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

推荐阅读