1.
MERGE tbl AS target
USING tb2 AS source
ON (target.id = source.id)
WHEN MATCHED and source.price >450
then
UPDATE SET TARGET.price = SOURCE.price,
TARGET.group = SOURCE.group
2.
update tb1
set
tb1.price=tb2.price,
tb1.group=tb2.group from tb2
left join tb1 on tb1.id =tb2.id
where tb1.id =tb2.id
and tb1.price>450
我对上述两种类型的代码感到困惑。在第二个代码集中,当我不使用tb1.id=tb2.id
after过滤器时,当使用 with语句不匹配where
时,我会得到很多空值。看起来不错,但不能正确理解它是如何工作的。
我想知道这两组代码是否等效?in first的行为会像第二组代码中的过滤器一样吗?如果我在第二组代码的 where from 之后省略会发生什么。我只是对此感到困惑id
select
merge
on tb1.id=tb2.id
tb1.id=tb2.id
select
update
语句,join 语句使用 with select 会产生空值,但是使用 update 时会发生什么?当我想更新一些表时,我想看看哪些表会受到影响,有时我会对这个空值感到困惑.....我没有任何正式培训,只是在网上寻找并尝试学习,但似乎也是很多事情要考虑。看过这个我也不清楚。
没有。两个表上的行数不相同,tb1 大于 tbl2。