相关疑难解决方法(0)

使用另一个表中的数据更新一个表

表格1:

id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf
Run Code Online (Sandbox Code Playgroud)

表2:

id    name    desc
-----------------------
1     x       123
2     y       345
Run Code Online (Sandbox Code Playgroud)

如何运行可以使用相同的ID更新表1和表2的名称和desc 的SQL更新查询?所以我得到的最终结果是

表格1:

id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf
Run Code Online (Sandbox Code Playgroud)

如何做到这一点:

  • SQL Server
  • MySQL的
  • PostgreSQL的
  • 神谕

sql database

46
推荐指数
4
解决办法
17万
查看次数

使用with子句更新语句

我有一个脚本,使用一堆with子句来得出一些结果,然后我想把这个结果写在一个表中.我无法理解它,有人能指出我正确的方向吗?

这是一个简化的例子,表明我想做什么:

with comp as (
  select *, 42 as ComputedValue from mytable where id = 1
)
update  t
set     SomeColumn = c.ComputedValue
from    mytable t
        inner join comp c on t.id = c.id 
Run Code Online (Sandbox Code Playgroud)

真实的东西有很多with子句都互相引用,所以实际使用with子句的任何建议都比将其重构为嵌套子查询更受欢迎.

提前致谢,

格特 - 扬

sql oracle

39
推荐指数
2
解决办法
12万
查看次数

使用来自另一个表的数据更新一个表中的行,基于每个表中的一列相等

基于每个表中的一个列相等(user_id),将多个行从另一个表更新为一个表.

两个表都有一user_id列.需要从数据插入t2t1user_id列相等.

提前感谢您提供的任何帮助.

sql oracle sql-update

39
推荐指数
4
解决办法
20万
查看次数

当条件存在时,从另一个表更新表中的多个行

我有两张桌子.

表1包含公司,其位置在名为的列中使用lat/lng坐标进行地理配准the_geom

表2还包含来自Table1的相同公司,而不是地理参考,以及其他数百个地址为地理参考的公司.

我需要做的就是将Table1公司的the_geomlat/lng值插入表2中的相应条目.这些插入可以基于的共同点是列.address

简单的问题,我确定,但我很少使用SQL.

sql postgresql postgis sql-update

11
推荐指数
3
解决办法
4万
查看次数

同时更新两个表 - Oracle

假设我有两个表,例如:

Product
prd_id   prd_name   parent_prd_id  ...
123      Foo        <null>
456      Bar        <null>
789      Baz        <null>


Product_Parent_Relation_Batch
prd_id   prd_parent_id   processed
555      888             T
123      789             F
456      789             F
Run Code Online (Sandbox Code Playgroud)

我无法将关系数据直接加载到产品中。父母有可能在孩子之前不存在。不管设计是否糟糕,事情就是这样。要更新产品表,我会进行相关更新,例如:

Oracle SQL:使用另一个表中的数据更新表

我想用父 ID 789 填充产品 123 和 456,并将 123 和 456 设置为产品父关系批处理表中的processed = 'T'。看来我只能做一件事了。

我是否被迫在应用程序中执行此操作,在该应用程序中查询与现有产品记录具有匹配的 prd_id 的所有未处理的批记录,为产品表执行一个单独的更新语句,为关系批处理表执行另一个更新语句,对于所有适用记录?

CREATE OR REPLACE PROCEDURE sync_prd_with_parent
IS
   cursor c1 is
     select prd_id, parent_prd_id
     from product_parent_relation_batch
     inner join product on product_parent_relation_batch.prd_id = product.prd_id
     where product_parent_relation_batch.processed = 'F';
BEGIN
   FOR rec in c1
   LOOP
      UPDATE product …
Run Code Online (Sandbox Code Playgroud)

oracle

5
推荐指数
1
解决办法
5万
查看次数

Oracle:使用带有更新子句的 CTE

我可以使用oracle数据库中的公用表表达式进行更新吗?

ORA-00928: missing SELECT keyword尝试此操作时出现错误:

with average as (SELECT avg(salary) FROM instructor)
update instructor
               set salary = case
                   when salary <= average then salary * 1.05 
                   else salary * 1.03                                     
               end
Run Code Online (Sandbox Code Playgroud)

sql oracle common-table-expression

2
推荐指数
1
解决办法
1万
查看次数

ORACLE SQL:如何更新基于另一列的表?

所以,我有两个表,INTERNAMENTO 和 DOC_ADMISSAO2。我想在某些条件下使用与名为 DIASADMISSAO 的表 DOC_ADMISSAO2 相同的值来更新名为 DIASINTERNAMENTO 的表 INTERNAMENTO 中的列。

update INTERNAMENTO a
set a.DIASINTERNAMENTO = (
       select b.DIASADMISSAO
       from DOC_ADMISSAO2 b
       where (a.EPISODIO = b.EPISODIO) AND (a.DATACRIACAO <= b.DATACRIACAO));
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误:

  1. 00000 - “单行子查询返回多于一行”

有什么建议吗?

sql oracle dml sql-update

-1
推荐指数
1
解决办法
2492
查看次数