如何默认列到默认值 /另一列的默认值 /如果SQL左JOIN中没有匹配行

发布于 2025-01-23 04:13:18 字数 370 浏览 0 评论 0原文

我有一个带有名称的表_a和名为type_and_cargo的字段。以下postgresql查询使用左JOIN来获取table_b的单独的“类型”和“货物”值,

SELECT 
a.type_and_cargo,
a.name
b.type_and_cargo,
b.type,
b.cargo FROM table_A a
LEFT JOIN table_B b USING (type_and_cargo)

但是Table_a中的某些行具有一个type_and_cargo,该type_and_cargo在table_b中没有相应的值。目前,“类型”和“货物”列变为无效。如果不存在匹配,我如何将a.type_and_cargo分配给“键入”,而“货物”未知?

I have a table Table_A with a name and a field named type_and_cargo. The following Postgresql query uses a left join to get the separate "type" and "cargo" values from Table_B

SELECT 
a.type_and_cargo,
a.name
b.type_and_cargo,
b.type,
b.cargo FROM table_A a
LEFT JOIN table_B b USING (type_and_cargo)

But some rows in Table_A have a type_and_cargo which does not have a corresponding value in Table_B. Right now, the "type" and "cargo" columns become Null. How can I assign the a.type_and_cargo to "type" and Unknown to "cargo" if not match exists?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谜兔 2025-01-30 04:13:18

会这样做吗?

SELECT 
  a.type_and_cargo,
  a.name
  b.type_and_cargo,
  CASE
    WHEN b.type_and_cargo IS NULL THEN a.type_and_cargo
    ELSE b.type
  END as type,
  CASE
    WHEN b.type_and_cargo IS NULL THEN 'Unknown'
    ELSE b.cargo
  END as cargo
FROM table_A a
  LEFT JOIN table_B b USING (type_and_cargo)

Would this do it?

SELECT 
  a.type_and_cargo,
  a.name
  b.type_and_cargo,
  CASE
    WHEN b.type_and_cargo IS NULL THEN a.type_and_cargo
    ELSE b.type
  END as type,
  CASE
    WHEN b.type_and_cargo IS NULL THEN 'Unknown'
    ELSE b.cargo
  END as cargo
FROM table_A a
  LEFT JOIN table_B b USING (type_and_cargo)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文