首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多选择LOV显示

多选择LOV显示
EN

Stack Overflow用户
提问于 2017-12-18 22:23:52
回答 1查看 1.2K关注 0票数 1

所以,我有点纠结于这个..。我目前正在使用一个多选择列表来捕获和存储数据库中的值(冒号分隔)。

示例:A:S:O

我想使用动态LOV将这些值转换成更有意义的东西。例如:

代码语言:javascript
复制
Auto, Student, Other

但是,我不知道该怎么做。我熟悉动态LOV,但是如何处理不同顺序的各种组合呢?

我是否被迫使用apex_item并遍历数组?我能以某种方式利用listagg和/或connect by语句吗?

我有一个键表,其中KEY_NAME存储密钥(例如a,s,o,等等)。KEY_LABEL存储相应的翻译。

先端4.2 -甲骨文11gr2

EN

回答 1

Stack Overflow用户

发布于 2017-12-19 07:29:00

我不知道KEY_NAME表是用来干什么的?如果它只包含一个列(a,s,o,.),那么KEY_LABEL (在这种情况下,必须包含带有相应描述的ID)就足够了。

不管怎样,像这样的东西有什么用吗?

代码语言:javascript
复制
SQL> with key_label (id, name) as
  2    -- sample labels
  3    (select 'a', 'auto' from dual union
  4     select 's', 'student' from dual union
  5     select 'o', 'other' from dual union
  6     select 'm', 'moto' from dual
  7    ),
  8  lov (value) as
  9    -- this is your LoV value
 10    (select 'a:o:s' from dual
 11    ),
 12  ones as
 13    -- LoV value transformed into rows
 14    (select regexp_substr(l.value, '[^:]+', 1, level) id
 15     from lov l
 16     connect by level <= regexp_count(l.value, '[^:]+')
 17    )
 18  -- final result (join Lov, as rows, with labels
 19  select listagg(k.name, ':') within group (order by r.id) result
 20  from key_label k, ones r
 21  where k.id = r.id;

RESULT
---------------------------------------------------------------------
auto:other:student

SQL>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47877296

复制
相关文章

相似问题

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