【问题标题】:Split Multiple Columns into Multiple Rows based on a condition根据条件将多列拆分为多行
【发布时间】:2021-03-08 17:58:41
【问题描述】:

我有一个具有这种结构的表。

第一个表是主表,2和3是同一张表,有拆分列。

[表结构]

我有一个 case 语句要满足,所以如果满足 case 语句,那么我会拆分行。即第 2 列和第 3 列作为第 2 表中的新值,第 4 列和第 5 列将作为第 3 表中的新值。

我不知道我会使用什么 SQL 查询来获得这样的结果集

谢谢!

【问题讨论】:

  • 数据中有“AnsweToQuestion2”吗?
  • 我现在已经编辑了这个问题。您现在可以检查问题吗?
  • 但是你为什么还要为约翰分道扬镳? value2 对他来说 = 0
  • @eshirvana 我附上了一张图片以更清楚地解释。你能检查一下那张图片,让我知道它现在是否清晰吗?
  • @eshirvana 我现在附上了图片。你现在可以检查一下吗?

标签: sql split teradata


【解决方案1】:

我认为这就是你想要做的, 第一个选择返回 F_other_p 、Pro_other_p 的所有行 但是 union 之后的第二个 select 只返回 FT_prc_P ,pro_other_prc_p ,如果满足条件,那么看起来你正在拆分它:

select Factor,F_other_p newval1,Pro_other_p newval2
union all
select Factor,FT_prc_P newval1,pro_other_prc_p newval2
where pro_other_p <> 0
and pro_other_prc_p <> 0 

【讨论】:

  • 我的回答仍然是相关的,这不是回答你的问题吗?
  • 没有这样的id和用户名列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 2021-11-25
相关资源
最近更新 更多