hadoop 如何使用子查询或CTE将合并查询转换为配置单元插入操作?

hfwmuf9z  于 2023-08-03  发布在  Hadoop
关注(0)|答案(1)|浏览(195)

我有这个merge语句,但是我不想在hive和impala中使用这个merge语句,是通过使用insert和使用任何类型子查询和CTE来创建相同逻辑的任何其他方法。

  1. MERGE INTO member_staging AS x
  2. USING (SELECT member_id, first_name, last_name, rank FROM members) y
  3. ON (x.member_id = y.member_id)
  4. WHEN MATCHED AND (
  5. x.first_name <> y.first_name OR
  6. x.last_name <> y.last_name OR
  7. x.rank <> y.rank
  8. )
  9. THEN
  10. UPDATE SET x.first_name = y.first_name,
  11. x.last_name = y.last_name,
  12. x.rank = y.rank
  13. WHEN NOT MATCHED THEN
  14. INSERT VALUES (y.member_id, y.first_name, y.last_name, y.rank);

字符串

42fyovps

42fyovps1#

您可以这样使用updateinsert

  1. -- Update existing records
  2. UPDATE member_staging
  3. SET first_name = y.first_name,
  4. last_name = y.last_name,
  5. rank = y.rank
  6. FROM member_staging x
  7. JOIN members y ON x.member_id = y.member_id
  8. WHERE x.first_name <> y.first_name
  9. OR x.last_name <> y.last_name
  10. OR x.rank <> y.rank;
  11. -- Insert new records
  12. INSERT INTO TABLE member_staging
  13. SELECT y.member_id, y.first_name, y.last_name, y.rank
  14. FROM members y
  15. LEFT JOIN member_staging x ON x.member_id = y.member_id
  16. WHERE x.member_id IS NULL;

字符串

展开查看全部

相关问题