如何使用 where 子句插入

Posted

技术标签:

【中文标题】如何使用 where 子句插入【英文标题】:How to insert with where clause 【发布时间】:2009-02-13 11:15:39 【问题描述】:

我正在使用以下查询将值插入到表 A 的一个字段中。

insert
into A (name)
values ('abc')
where
   A.id=B.code
   and B.dept='hr' ;

这个查询对吗? 如果没有,请给我一个正确的方法。

【问题讨论】:

学业?这是一个奇怪的问题,你没有更多的信息给我们吗? 【参考方案1】:

如果您想更改使用WHERE 子句选择的记录中的字段值,您应该使用UPDATE

【讨论】:

如果您使用的是那些新奇的数据库之一,则为“upsert”:-)【参考方案2】:
MERGE
INTO a
USING (
  SELECT *
  FROM b
  WHERE b.dept = 'hr'
)
ON a.id = b.code
WHEN NOT MATCHED THEN
  INSERT (id, name)
  VALUES (code, 'abc')
WHEN MATCHED THEN
  UPDATE
  SET name = 'abc'

【讨论】:

【参考方案3】:

插入部分应该没问题

插入 进入A(姓名) 值('abc')

这实际上取决于您尝试使用 where 子句和 B 表引用实现的目标。

【讨论】:

【参考方案4】:
INSERT INTO A (name)
SELECT name 
FROM A as a
LEFT JOIN B as b ON b.id=a.id
WHERE a.id=b.code AND b.dept='hr'

A 是第一个表,然后 B 是第二个表,使用 LEFT JOIN 连接在一起,然后名称是列。这就是他想对他的问题做的事情。

这就是“插入选择语句”的作用。

在进行选择并结合 WHERE 和 JOIN 时可以插入的查询。

INSERT TABLE1 (column1)
SELECT column1
FROM TABLE1 as a
LEFT JOIN TABLE2 as b ON b.column1=a.column1
WHERE a.column2=b.column3 AND b.column4='hr'

【讨论】:

以上是关于如何使用 where 子句插入的主要内容,如果未能解决你的问题,请参考以下文章

带有插入语句的 Where 子句

如何使用替换 Where 子句实现以下火花行为

如何限制Hybris中的插入?

如何使用带有 WITH 子句的 INSERT 语句?

Powershell 使用 WHERE 子句插入 MS Access

如何使用 AREL 执行条件 where 子句