Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在修改并使用字段的情况下运行SQL更新查询_Sql_Sqlite_Sql Update - Fatal编程技术网

如何在修改并使用字段的情况下运行SQL更新查询

如何在修改并使用字段的情况下运行SQL更新查询,sql,sqlite,sql-update,Sql,Sqlite,Sql Update,SQL上是否可以执行以下操作?(使用SQLITE3) 现在我需要做一些事情,比如: UPDATE Table SET Value1 = (SELECT ...) Value2 = Value3/(SELECT ...); 这使得代码相当长。想象一下,我更新的不仅仅是Value1,还有其他字段 所以我找到的唯一解决方案是做两次更新。第一: UPDATE Table SET Value1 = (SELECT ...); 然后 UPDATE Table SET Value2 = Value3/Va

SQL上是否可以执行以下操作?(使用SQLITE3)

现在我需要做一些事情,比如:

UPDATE Table SET
Value1 = (SELECT ...)
Value2 = Value3/(SELECT ...);
这使得代码相当长。想象一下,我更新的不仅仅是Value1,还有其他字段

所以我找到的唯一解决方案是做两次更新。第一:

UPDATE Table SET
Value1 = (SELECT ...);
然后

UPDATE Table SET
Value2 = Value3/Value1;
有人有更“漂亮”的方法吗


谢谢,

也许您可以尝试更换

replace into table2
(Value1 , Value2)
select src.Value1 , src.Value3 / src.Value1
from table1 src
在sql中,您不能执行
UDPATE。。。从
中,如本

中所述,您可以这样做:

update Table1 set szNo = KO.nNo 
from 
(select nNo From Table2) KO

在SQLite 3.8.3或更高版本中,您可以使用:


(这甚至适用于相关的子查询)

我会考虑先做内部代码>选择< <代码> >,然后>代码>更新/代码>一个语句中的两个值。这将删除任何旧行,所以其他列中的值将丢失。
update Table1 set szNo = KO.nNo 
from 
(select nNo From Table2) KO
WITH u(v) AS (
    SELECT ...
)
UPDATE MyTable
SET Value1 = (SELECT v FROM u),
    Value2 = Value3 / (SELECT v FROM u);