首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态地从oracle表中获取数据

动态地从oracle表中获取数据
EN

Stack Overflow用户
提问于 2022-05-09 10:57:25
回答 1查看 33关注 0票数 0

在下面的场景中需要您的帮助。

代码语言:javascript
运行
复制
Table1
    Columns
        Unique_id   number  
        Name        varchar2(20)
        desc        varchar2(20)
        Column_Name        varchar2(20) /* Contain Column name of Table2 like Col1, Col2, Col3*/
        
Table2
    Columns
        Unique_id   number  FK from Table1
        Col1        varchar2(20)
        Col2        varchar2(20)
        Col3        varchar2(20)

我想编写一个查询以获得以下列。

代码语言:javascript
运行
复制
Name, desc, Column_name, Value

应该来自Table2。所有列(Col1、Col2、Col3)都可以包含数据,或者只有一个列可以包含数据。

需要帮助如何得到它,我使用解码来实现它。在我的实际情况下,大约有200个这样的专栏,有没有其他更好的(表演)方法来解决这个问题。

谢谢你,维杰

EN

回答 1

Stack Overflow用户

发布于 2022-05-09 12:05:13

由于您已经提到,如果Table2中包含值的列超过一个,则结果行也将超过一个。因此,您可以首先使用UNION ALL生成多个行,然后使用表1-

代码语言:javascript
运行
复制
SELECT T1.Name, T1.desc, T1.Column_name, T2.Value
  FROM Table1 T1
  JOIN (SELECT Unique_id, Col1 Value
          FROM Table2
         WHERE col1 IS NOT NULL
         UNION ALL
        SELECT Unique_id, Col2
          FROM Table2
         WHERE col2 IS NOT NULL
         UNION ALL
        SELECT Unique_id, Col3
          FROM Table2
         WHERE col3 IS NOT NULL
        ... ) T2      --  Repeat this step for how much columns are there in your table.  
        ON T1.Unique_id = T2.Unique_id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72170856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档