【发布时间】:2016-10-09 17:53:47
【问题描述】:
我的 Oracle Apex 页面中有一个带有逗号分隔值的文本字段(例如“F01C、F01D、G01A”)。这些值仅存储在我的表的一列中(表:HC_DEFHANDBUCH_B5 列 DRG)。
------
PK_ID OPS MDC DRG OPS_FILL MDC_FILL YEAR
214098 1-100 2 C01A, C01B, C14Z 1-100 2 2017
214099 - 15 P67D 1-100 15 2017
214100 1-204.2 15 P67D 1-204.2 15 2017
214101 1-204.3 15 P67D 1-204.3 15 2017
-------
我尝试在交互式报告中运行查询,以从表 HC_GDRG_FPK 中选择 PK_ID '214098' 的所有 DRG,每个 DRG 有一行:
Select * FROM HC_GDRG_FPK a
WHERE a.DRG IN (Select '(''' || REPLACE(b.DRG,', ',''', ''') || ''')' FROM HC_DEFHANDBUCH_B5 b WHERE b.PK_ID='214098')
AND a.Jahr='2017'
有没有人知道如何让它工作?我让它在单个值上工作。
提前致谢。
【问题讨论】:
-
在列中存储逗号分隔值违反了最基本的规范化规则。这将使工作变得更加困难。正确的方法是创建一个子表,其中三个值有三行。您确定不想修复您的数据模型吗?
-
我把这个问题看了三遍,我还是不明白你在做什么。你能用简单的英语解释一下这个作业吗? (顺便说一句,如果列是年份,Jahr 将不起作用!)
-
@Justin Cave:你是对的。一张儿童桌可以帮助我试试这个。数据模型的问题在于这些数据来自公共来源。会跟进。
-
@mathguy:这与 APEX 的功能更相关。对 SQL 没有那么多。如果您熟悉 APEX 但仍然不明白,我会修改我的问题。
标签: oracle oracle-apex oracle-apex-5