gpt4 book ai didi

sql - 更新空值

转载 作者:行者123 更新时间:2023-12-03 17:38:59 27 4
gpt4 key购买 nike

This question反射(reflect)了我的问题。如何在 SQLite 中执行此操作?

我尝试过使用自连接的UPDATE,在子查询、触发器和类似this 的东西中隔离自连接。 .这是一个例子:

UPDATE stage 
SET title =
(
SELECT
prior.title
FROM
stage prior,
stage now
WHERE
prior.rownum+1 = now.rownum
)
WHERE
title is null

最佳答案

SQLite 中的每个表都有一个名为 rowid 的伪列(可以通过几个不同的名称访问:rowidoid_rowid_,除非这些名称被分配给其他真实的列)。 rowid 列本质上是一个唯一的行标识符,您可以将其用作排序标准和/或条件。

以下查询演示了如何在 rowid 的帮助下解决您的问题:

UPDATE stage
SET title = (
SELECT title
FROM stage AS prev
WHERE title IS NOT NULL AND prev.rowid < stage.rowid
ORDER BY prev.rowid DESC
LIMIT 1
)
WHERE title IS NULL

这是一个 demo on SQL Fiddle .

您可以在 this SQLite manual 中阅读有关 rowid 的更多信息.

关于sql - 更新空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10651025/

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