【问题标题】:SQL query to add column values用于添加列值的 SQL 查询
【发布时间】:2021-09-03 18:07:24
【问题描述】:

表 T1

Name ID
AMAN 10
JIM 11
SAM 12

T2 表

VAL ID
A00 10
B0 11

我想要的结果:

T3

Name ID VAL
AMAN 10 A00
JIM 11 B0
SAM 12 NA

我该如何编写这个查询?

【问题讨论】:

  • 到目前为止,您尝试了哪些方法来解决问题?

标签: sql oracle select


【解决方案1】:
SELECT    t1.name, t1.id, coalesce(t2.val,'n/a')
FROM      t1
LEFT JOIN t2 ON t1.id = t2.id

【讨论】:

  • 那些刻度应该是正确的单引号。
  • 在 iPad 上我能做到的最好的事情
  • 嗯,在 iPad 上不能输入单引号?哦,好吧,如果您出于某种原因无法这样做,我会为您编辑它。
  • 我看不到,
  • @AbBennett 尝试长按
【解决方案2】:

试试这个

Select a.Name,
a.val,
b.val, 
.
.
.
from TABLE T1 as a left join Table T2 b 
on a.ID = b.ID

【讨论】:

  • 我不这么认为;内部连接在这里无济于事,您将丢失一些数据。这是主要的“问题”——你需要 outer 加入。
  • @Littlefoot 我同意你的看法。最初问题的格式非常不同(没有表格结构和值),这就是为什么我认为内部连接会起作用。无论如何感谢您指出这一点,我认为 Left Join 最适合,我会编辑我的答案。
【解决方案3】:

您可以在 id 上留下加入:

SELECT    t1.name, t1.id, t2.val
FROM      t1
LEFT JOIN t2 ON t1.id = t2.id

【讨论】:

  • 它不会在没有共同 id 的行上给出 'NA'
  • @kiara 很多工具将null 显示为NA,所以我假设这就是OP 的意思。如果要求使用字符串文字 'NA',那么您是对的,这需要明确处理(例如,通过使用 coaleasce
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
  • 2023-03-25
  • 2023-02-26
  • 2012-12-31
相关资源
最近更新 更多