gpt4 book ai didi

使用 If When 的 SQL 更新语句

转载 作者:行者123 更新时间:2023-12-05 00:30:20 26 4
gpt4 key购买 nike

仅当该列也不为空时,我才尝试使用另一列的值更新一列,如果它为空。如果为空,则用第 3 列更新第 1 列

下面是一个例子:

day_phone sec_phone alt_phone cell_phone
555-555-1212 NULL NULL NULL
NULL 555-555-1234 NULL NULL
空 空 555-555-4321 空
NULL NULL NULL 555-555-5678
空 555-123-4567 555-867-5309 空

所以我想要完成的是更新所有记录,这样 day_phone 就会得到一个结果,如果多列中有记录,最好是它找到的第一个结果。最终结果应如下所示:

day_phone sec_phone alt_phone cell_phone
555-555-1212 NULL NULL NULL
555-555-1234 555-555-1234 NULL NULL
555-555-4321 NULL 555-555-4321 NULL
555-555-5678 NULL NULL 555-555-5678
555-123-4567 555-123-4567 555-867-5309 无

最佳答案

只需使用 COALESCE

UPDATE  tableName
SET day_phone = COALESCE(day_phone, sec_phone, alt_phone, cell_phone)
  • SQLFiddle Demo

  • 如果您只想更新 day_phone为空,那么你可以添加额外的条件,
    UPDATE  tableName
    SET day_phone = COALESCE(sec_phone, alt_phone, cell_phone)
    WHERE day_phone IS NULL

    这将使更新更快,因为只更新选定的行。如果您在 day_phone 列上有索引,速度会更快.

    关于使用 If When 的 SQL 更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16193400/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com