zoukankan      html  css  js  c++  java
  • 如何在SQL CASE表达式中返回多个值

    Oracle数据库开发中CASE...THEN子句有时需要返回多个值用于判断,如何做才能在CASE...THEN表达式中返回多个值呢,具体参考下面的演示:
    SQL> select case
      2           when to_char(sysdate, 'SS') > 30 then sys.odcivarchar2list('Sent')
      3           else sys.odcivarchar2list('New', 'Sent')
      4         end options
      5    from dual;
    
    OPTIONS
    --------------------------------------------------------------------------------
    ODCIVARCHAR2LIST('Sent')
    
    SQL> /
    
    OPTIONS
    --------------------------------------------------------------------------------
    ODCIVARCHAR2LIST('New', 'Sent')
    SQL> select *
      2    from table(
      3            select case when to_char(sysdate,'SS') > 30 then sys.odcivarchar2list('Sent')
      4                        else sys.odcivarchar2list('New','Sent')    
      5                   end options
      6            from dual
      7              );
    
    COLUMN_VALUE
    --------------------------------------------------------------------------------
    New
    Sent
    SQL> /
    
    COLUMN_VALUE
    --------------------------------------------------------------------------------
    Sent
    SQL> select *
    from emp
    where report_status in 
    (
    select *
    from table(
    select
    case
    when to_char(sysdate,'SS') > 30 then sys.odcivarchar2list('Sent')
    else sys.odcivarchar2list('New','Sent')
    end options
    from dual
    )
    ) ;

  • 相关阅读:
    计数排序
    epel
    Web开发:我希望得到的编程学习路线图
    第五章:if语句与运算符
    java web学习建议
    第四章:c++数据类型
    第二章:做一个最简单的c++程序
    linux的商业应用
    第三章:初步了解函数
    解析Linux商业应用现状
  • 原文地址:https://www.cnblogs.com/alen-liu-sz/p/12975727.html
Copyright © 2011-2022 走看看