横向嵌套-SQL

Posted

技术标签:

【中文标题】横向嵌套-SQL【英文标题】:Lateral Unnest -SQL 【发布时间】:2019-02-15 11:38:15 【问题描述】:

Lateral Unnest -ing 给我带来了一些问题。

我有一张桌子 看起来像:

Name  | Info
------|------
  A   | Info1, Info2, Info3
  B   | Info1, Info 2, Info3

我希望它看起来像:

Name  | Info
------|------
 A    | Info1 
 A    | Info2 
 A    | Info3 
 B    | Info1 
 B    | Info2 
 B    | Info3 

里面还有几列。我想都保留它们。 有什么想法吗?

【问题讨论】:

【参考方案1】:

如果你想使用unnest():

select t.name, trim(i) as info
from t cross join lateral
     unnest(string_to_array(t.info, ',')) i;

你不需要使用unnest(),因为你可以直接拆分成一个数组:

select t.name, trim(i) as info
from t cross join lateral
     regexp_split_to_table(t.info, ',') i;

【讨论】:

谢谢,我试过了,但它会将所有其他列放在一个列中?如果我想将其他列也保留在列中怎么办?呐。 | CB|CC|信息 ------|------|----|-- A | xyz|xyz|Info1, Info2, Info3 B | xyz|xyz|Info1, Info2, Info3 Na 。 | CB|CC|信息 ------|------|----|-- A | xyz|xyz|Info1 A | xyz|xyz|Info2 A | xyz|xyz|Info3 B | xyz|xyz|信息1 B | xyz|xyz|Info2 B | xyz|xyz|Info3 @somanyquestions 您需要明确列出列:select t.name, t.some_value, t.some_date, .... , trim(i) as info from ...:rextester.com/KBWA21456 @somanyquestions 。 . .您将列出这些列。而且,如果这不能回答问题,请提出 new 问题。这很清楚地涉及两个特定的列。

以上是关于横向嵌套-SQL的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView里面嵌套一个无限循环的横向列表该怎么做

生成嵌套 JSON(反向横向展平)

如何在嵌套线性布局中使 imageButton 的高度占屏幕尺寸的 25%。 Android XML 横向布局

从ViewPager嵌套RecyclerView再嵌套RecyclerView看安卓事件分发机制

iframe嵌套vue页面不能切换

better-scroll中嵌套原生滚动组件,原生滚动组件失效问题