【问题标题】:Select from dual as one row?从双排中选择一排?
【发布时间】:2015-03-05 04:11:25
【问题描述】:

从对偶中选择多个字符串作为一列。我已经尝试了下面的解决方案,我可以接受它,使用 PL/SQL 宏添加“从双重选择”相对容易。我想知道有没有其他方法可以做到这一点?

select 'AAA' as code
          from dual
        union all
        select 'ABQ'
          from dual
        union all
        select 'ACA'
          from dual
        union all   
          from dual

【问题讨论】:

  • 您的示例中没有 PL/SQL

标签: plsql plsqldeveloper


【解决方案1】:

对于单列查询有。您需要一个 VARCHAR2 表的数据库类型,其中一些始终存在于 oracle 中,包括:

  • SYS.KU$_VCNT
  • SYS.DBMS_DEBUG_VC2COLL

(当然,如果您愿意,也可以创建自己的)。

然后你可以这样查询:

select * from table (SYS.KU$_VCNT ('AAA','ABQ','ACA'));

对于包含多个列的查询,您需要专门为该查询创建一个类型,这不是一个有用的选项。但为了完整起见,您可以这样做:

create type my_obj_t as object(n number, d date, c varchar2(100));
create type my_tab_t as table of my_obj_t;

select * from table (my_tab_t(my_obj_t(1,sysdate,'aaa'),
                              my_obj_t(2,date '2014-12-31','bbb'),
                              my_obj_t(3,sysdate+2,'bbb')));

【讨论】:

  • 很棒的回答托尼,谢谢。是否还有其他用于数字、布尔值等的嵌入式表格类型?
  • @AliArdaOrhan - 我确定一定有,但我目前不认识他们!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
  • 2013-04-25
  • 1970-01-01
相关资源
最近更新 更多