Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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
Python 仅更新非空行_Python_Sql_Python 2.7_Sqlite_Sql Update - Fatal编程技术网

Python 仅更新非空行

Python 仅更新非空行,python,sql,python-2.7,sqlite,sql-update,Python,Sql,Python 2.7,Sqlite,Sql Update,我对SQL非常陌生,我想知道是否可以使用条件更新列 我有两列,仅当第一列(A)中有内容时,我才想更新第二列(B): 如何避免将更新应用于列A为空的行?如果您只想在存在匹配项的位置进行更新,则有一种方法使用EXISTS: UPDATE Table1 SET ColumnB = (SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ) WHERE EXISTS ( SELECT BG FROM Table2 t2 WH

我对SQL非常陌生,我想知道是否可以使用条件更新列

我有两列,仅当第一列(A)中有内容时,我才想更新第二列(B):


如何避免将更新应用于列A为空的行?

如果您只想在存在匹配项的位置进行更新,则有一种方法使用
EXISTS

UPDATE Table1 
    SET ColumnB = (SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ)
    WHERE EXISTS ( SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ );
如果只想在第一个表具有非空值的地方更新,请在外部查询中使用
where

UPDATE Table1 
    SET ColumnB = (SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ)
    WHERE ColumnB IS NOT NULL;

一种方法使用
EXISTS
,如果您只想更新存在匹配项的位置:

UPDATE Table1 
    SET ColumnB = (SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ)
    WHERE EXISTS ( SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ );
如果只想在第一个表具有非空值的地方更新,请在外部查询中使用
where

UPDATE Table1 
    SET ColumnB = (SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ)
    WHERE ColumnB IS NOT NULL;