2016-10-09 3 views
0

У меня есть текстовое поле с запятыми, имеющими уникальные значения на моей странице Oracle Apex (например, «F01C, F01D, G01A»). Значения хранятся только в одном столбце моей таблицы (таблица: HC_DEFHANDBUCH_B5 Column DRG).Множество значений Oracle Apex в столбце

------ 
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 
------- 

Я пытался запустить запрос в интерактивном отчете выбрать весь ДРГ для PK_ID «214098» из таблицы HC_GDRG_FPK которая, имеющая одну строки за 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' 

Кто-нибудь есть идея как заставить это работать? Я работаю над одним значением.

Заранее спасибо.

+1

Сохранение значений, разделенных запятыми в столбце, нарушает основные правила нормализации. Это затруднит работу. Правильный способ сделать это - создать дочернюю таблицу, в которой было три строки для трех значений. Вы уверены, что не хотите исправлять свою модель данных? –

+1

Я читал вопрос три раза, и я до сих пор не понимаю, что вы пытаетесь сделать. Можете ли вы объяснить назначение на простом английском языке? (Кстати, если столбец Year, Jahr не будет работать!) – mathguy

+0

@ Justin Cave: Вы правы. Детский стол может помочь, я попробую это. Проблема с моделью данных заключается в том, что эти данные получены из общего источника. Будет следить. – fscherbaum

ответ

0

Я мог бы, наконец, решить его с помощью регулярных выражений. @ Justin Cave: Спасибо за подсказку.

select * from HC_GDRG_FPK where DRG in (
select regexp_substr(:P39_CALL_DRGS,'[^,]+', 1, level) from HC_DEFHANDBUCH_B5 
connect by regexp_substr(:P39_CALL_DRGS, '[^,]+', 1, level) is not null) 
AND Jahr ='2017' 
Смежные вопросы