【发布时间】:2019-03-09 11:20:58
【问题描述】:
我在这里看到了多个关于“将列拆分为多行”的主题,但它们都基于一些分隔符。
我想在 oracle 中根据长度拆分列。
假设我有一张桌子
代码 |产品 --------------+-------- C111C222C333C444C555..... |一种代码是 VARCHAR2(800) 类型,产品是 VARCHAR2(1)。
在代码字段中,我们有许多属于产品A的代码(最多200个)。每个代码的长度为4(因此C111,C222,C333是不同的代码)
我想要像这样输出我的选择查询-
代码 |产品 ---------------+-------- C111 |一种 C222 |一种 C333 |一种 C444 |一种 C555 |一种 ...等等。
请帮我解决这个问题。提前致谢。
【问题讨论】:
-
这不是关系数据库的使用方式。应该有一个包含产品代码的单独表格。可以修改数据库吗?那么你应该这样做。
-
我想要我的选择查询中的输出...我不想改变表的结构。
-
但你应该这样做。新表应该看起来像您显示的结果。建立关系数据库系统来关联表。使用您拥有的表,您没有正确使用 DBMS。您的表违反了数据库规范化。想一想:如果您已经有一个包含两个表而不是一个表的适当数据库,那么您甚至不会有任何问题。
标签: sql oracle oracle11g oracle12c