首页 > 其他 > 详细

单行函数·下

时间:2016-03-16 20:53:19      阅读:219      评论:0      收藏:0      [点我收藏+]

SQL> -- 查询系统当前时间
SQL> select sysdate from dual;

SYSDATE                                                                                                                                                                                                
--------------                                                                                                                                                                                         
15-3月 -16                                                                                                                                                                                             

SQL> alter session set NLS_DATE_PARAMETER=‘yyyy-mm-dd‘;
alter session set NLS_DATE_PARAMETER=‘yyyy-mm-dd‘
*
第 1 行出现错误:
ORA-00922: 选项缺失或无效


SQL> select * from v$nls_parameters;

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_LANGUAGE                                                                                                                                                                                           
SIMPLIFIED CHINESE                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_TERRITORY                                                                                                                                                                                          
CHINA                                                                                                                                                                                                  
                                                                                                                                                                                                       
NLS_CURRENCY                                                                                                                                                                                           
¥                                                                                                                                                                                                     
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_ISO_CURRENCY                                                                                                                                                                                       
CHINA                                                                                                                                                                                                  
                                                                                                                                                                                                       
NLS_NUMERIC_CHARACTERS                                                                                                                                                                                 
.,                                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_CALENDAR                                                                                                                                                                                           
GREGORIAN                                                                                                                                                                                              
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_DATE_FORMAT                                                                                                                                                                                        
DD-MON-RR                                                                                                                                                                                              
                                                                                                                                                                                                       
NLS_DATE_LANGUAGE                                                                                                                                                                                      
SIMPLIFIED CHINESE                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_CHARACTERSET                                                                                                                                                                                       
AL32UTF8                                                                                                                                                                                               
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_SORT                                                                                                                                                                                               
BINARY                                                                                                                                                                                                 
                                                                                                                                                                                                       
NLS_TIME_FORMAT                                                                                                                                                                                        
HH.MI.SSXFF AM                                                                                                                                                                                         
                                                                                                                                                                                                       
NLS_TIMESTAMP_FORMAT                                                                                                                                                                                   
DD-MON-RR HH.MI.SSXFF AM                                                                                                                                                                               
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_TIME_TZ_FORMAT                                                                                                                                                                                     
HH.MI.SSXFF AM TZR                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_TIMESTAMP_TZ_FORMAT                                                                                                                                                                                
DD-MON-RR HH.MI.SSXFF AM TZR                                                                                                                                                                           
                                                                                                                                                                                                       
NLS_DUAL_CURRENCY                                                                                                                                                                                      
¥                                                                                                                                                                                                     
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_NCHAR_CHARACTERSET                                                                                                                                                                                 
AL16UTF16                                                                                                                                                                                              
                                                                                                                                                                                                       
NLS_COMP                                                                                                                                                                                               
BINARY                                                                                                                                                                                                 
                                                                                                                                                                                                       
NLS_LENGTH_SEMANTICS                                                                                                                                                                                   
BYTE                                                                                                                                                                                                   
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_NCHAR_CONV_EXCP                                                                                                                                                                                    
FALSE                                                                                                                                                                                                  
                                                                                                                                                                                                       

已选择19行。

SQL> set linesize 200;
SQL> /

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_LANGUAGE                                                                                                                                                                                           
SIMPLIFIED CHINESE                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_TERRITORY                                                                                                                                                                                          
CHINA                                                                                                                                                                                                  
                                                                                                                                                                                                       
NLS_CURRENCY                                                                                                                                                                                           
¥                                                                                                                                                                                                     
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_ISO_CURRENCY                                                                                                                                                                                       
CHINA                                                                                                                                                                                                  
                                                                                                                                                                                                       
NLS_NUMERIC_CHARACTERS                                                                                                                                                                                 
.,                                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_CALENDAR                                                                                                                                                                                           
GREGORIAN                                                                                                                                                                                              
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_DATE_FORMAT                                                                                                                                                                                        
DD-MON-RR                                                                                                                                                                                              
                                                                                                                                                                                                       
NLS_DATE_LANGUAGE                                                                                                                                                                                      
SIMPLIFIED CHINESE                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_CHARACTERSET                                                                                                                                                                                       
AL32UTF8                                                                                                                                                                                               
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_SORT                                                                                                                                                                                               
BINARY                                                                                                                                                                                                 
                                                                                                                                                                                                       
NLS_TIME_FORMAT                                                                                                                                                                                        
HH.MI.SSXFF AM                                                                                                                                                                                         
                                                                                                                                                                                                       
NLS_TIMESTAMP_FORMAT                                                                                                                                                                                   
DD-MON-RR HH.MI.SSXFF AM                                                                                                                                                                               
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_TIME_TZ_FORMAT                                                                                                                                                                                     
HH.MI.SSXFF AM TZR                                                                                                                                                                                     
                                                                                                                                                                                                       
NLS_TIMESTAMP_TZ_FORMAT                                                                                                                                                                                
DD-MON-RR HH.MI.SSXFF AM TZR                                                                                                                                                                           
                                                                                                                                                                                                       
NLS_DUAL_CURRENCY                                                                                                                                                                                      
¥                                                                                                                                                                                                     
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_NCHAR_CHARACTERSET                                                                                                                                                                                 
AL16UTF16                                                                                                                                                                                              
                                                                                                                                                                                                       
NLS_COMP                                                                                                                                                                                               
BINARY                                                                                                                                                                                                 
                                                                                                                                                                                                       
NLS_LENGTH_SEMANTICS                                                                                                                                                                                   
BYTE                                                                                                                                                                                                   
                                                                                                                                                                                                       

PARAMETER                                                                                                                                                                                              
--------------------------------------------------------------------------------------------------------------------------------                                                                       
VALUE                                                                                                                                                                                                  
--------------------------------------------------------------------------------------------------------------------------------                                                                       
NLS_NCHAR_CONV_EXCP                                                                                                                                                                                    
FALSE                                                                                                                                                                                                  
                                                                                                                                                                                                       

已选择19行。

SQL> col parameter for a50;
SQL> /

PARAMETER                                          VALUE                                                                                                                                               
-------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------                    
NLS_LANGUAGE                                       SIMPLIFIED CHINESE                                                                                                                                  
NLS_TERRITORY                                      CHINA                                                                                                                                               
NLS_CURRENCY                                       ¥                                                                                                                                                  
NLS_ISO_CURRENCY                                   CHINA                                                                                                                                               
NLS_NUMERIC_CHARACTERS                             .,                                                                                                                                                  
NLS_CALENDAR                                       GREGORIAN                                                                                                                                           
NLS_DATE_FORMAT                                    DD-MON-RR                                                                                                                                           
NLS_DATE_LANGUAGE                                  SIMPLIFIED CHINESE                                                                                                                                  
NLS_CHARACTERSET                                   AL32UTF8                                                                                                                                            
NLS_SORT                                           BINARY                                                                                                                                              
NLS_TIME_FORMAT                                    HH.MI.SSXFF AM                                                                                                                                      

PARAMETER                                          VALUE                                                                                                                                               
-------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------                    
NLS_TIMESTAMP_FORMAT                               DD-MON-RR HH.MI.SSXFF AM                                                                                                                            
NLS_TIME_TZ_FORMAT                                 HH.MI.SSXFF AM TZR                                                                                                                                  
NLS_TIMESTAMP_TZ_FORMAT                            DD-MON-RR HH.MI.SSXFF AM TZR                                                                                                                        
NLS_DUAL_CURRENCY                                  ¥                                                                                                                                                  
NLS_NCHAR_CHARACTERSET                             AL16UTF16                                                                                                                                           
NLS_COMP                                           BINARY                                                                                                                                              
NLS_LENGTH_SEMANTICS                               BYTE                                                                                                                                                
NLS_NCHAR_CONV_EXCP                                FALSE                                                                                                                                               

已选择19行。

SQL> alter session set NLS_DATE_FORMAT=‘yyyy-mm-dd‘;

会话已更改。

SQL> select sysdate from dual;

SYSDATE                                                                                                                                                                                                
----------                                                                                                                                                                                             
2016-03-15                                                                                                                                                                                             

SQL> -- 改变时间的显示的另一种方式
SQL> select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DDHH24:MI:SS‘                                                                                                                                                                 
--------------------------------------                                                                                                                                                                 
2016-03-15 16:39:38                                                                                                                                                                                    

SQL> desc emp;
 名称                                                                                                              是否为空? 类型
 ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
 EMPNO                                                                                                             NOT NULL NUMBER(4)
 ENAME                                                                                                                      VARCHAR2(10)
 JOB                                                                                                                        VARCHAR2(9)
 MGR                                                                                                                        NUMBER(4)
 HIREDATE                                                                                                                   DATE
 SAL                                                                                                                        NUMBER(7,2)
 COMM                                                                                                                       NUMBER(7,2)
 DEPTNO                                                                                                                     NUMBER(2)

SQL> -- oracle中如果你的字符串的格式满足日期的格式系统会根据你的需求帮你转换
SQL> -- 输出昨天 ,今天 和明天
SQL> select sysdate + 1 明天,sysdate 今天, sysdate - 1 昨天 from dual;

明天       今天       昨天                                                                                                                                                                             
---------- ---------- ----------                                                                                                                                                                       
2016-03-16 2016-03-15 2016-03-14                                                                                                                                                                       

SQL> -- 明天减去今天等于多少
SQL> select (sysdate + 1) - (sysdate) from dual;

(SYSDATE+1)-(SYSDATE)                                                                                                                                                                                  
---------------------                                                                                                                                                                                  
                    1                                                                                                                                                                                  

SQL> -- 明天加今天等于多少
SQL> select (sydate + 1) + sysdate from dual;
select (sydate + 1) + sysdate from dual
        *
第 1 行出现错误:
ORA-00904: "SYDATE": 标识符无效


SQL> -- 日期不能去做加法,只能加几天,可以做减法,减去一个日期或者几天
SQL> -- 根据入司时间计算一下emp表里面的所有员工的工龄
SQL> select (sysdate - hiredate) 天,(sysdate -hiredate)/7 周, (sysdate - hiredate)/30 月 from emp;

        天         周         月                                                                                                                                                                       
---------- ---------- ----------                                                                                                                                                                       
12872.7023 1838.95747 429.090077                                                                                                                                                                       
12807.7023 1829.67176  426.92341                                                                                                                                                                       
12805.7023 1829.38604 426.856743                                                                                                                                                                       
12766.7023 1823.81461 425.556743                                                                                                                                                                       
12587.7023 1798.24319 419.590077                                                                                                                                                                       
12737.7023 1819.67176 424.590077                                                                                                                                                                       
12698.7023 1814.10033 423.290077                                                                                                                                                                       
10558.7023 1508.38604 351.956743                                                                                                                                                                       
12537.7023 1791.10033  417.92341                                                                                                                                                                       
12607.7023 1801.10033 420.256743                                                                                                                                                                       
10524.7023  1503.5289  350.82341                                                                                                                                                                       

        天         周         月                                                                                                                                                                       
---------- ---------- ----------                                                                                                                                                                       
12521.7023 1788.81461 417.390077                                                                                                                                                                       
12521.7023 1788.81461 417.390077                                                                                                                                                                       
12470.7023  1781.5289 415.690077                                                                                                                                                                       

已选择14行。

SQL> select (sysdate - hiredate)/30 粗略, months_between(sysdate,hiredate) 精确 from emp;

      粗略       精确                                                                                                                                                                                  
---------- ----------                                                                                                                                                                                  
429.090142 422.958202                                                                                                                                                                                  
426.923475 420.861427                                                                                                                                                                                  
426.856808 420.796911                                                                                                                                                                                  
425.556808 419.442073                                                                                                                                                                                  
419.590142 413.603363                                                                                                                                                                                  
424.590142 418.474331                                                                                                                                                                                  
423.290142 417.216266                                                                                                                                                                                  
351.956808 346.893685                                                                                                                                                                                  
417.923475 411.958202                                                                                                                                                                                  
420.256808 414.248524                                                                                                                                                                                  
350.823475 345.764653                                                                                                                                                                                  

      粗略       精确                                                                                                                                                                                  
---------- ----------                                                                                                                                                                                  
417.390142 411.409814                                                                                                                                                                                  
417.390142 411.409814                                                                                                                                                                                  
415.690142 409.764653                                                                                                                                                                                  

已选择14行。

SQL> -- 在一个日期上加上几个月
SQL> select add_months(sysdate,5) from dual;

ADD_MONTHS                                                                                                                                                                                             
----------                                                                                                                                                                                             
2016-08-15                                                                                                                                                                                             

SQL> -- 查看当前月的最后一天
SQL> select last_day(sysdate) from dual;

LAST_DAY(S                                                                                                                                                                                             
----------                                                                                                                                                                                             
2016-03-31                                                                                                                                                                                             

SQL> -- 下一个日期 比如下一个星期六
SQL> select next_day(sysdate,‘星期二‘) from dual;

NEXT_DAY(S                                                                                                                                                                                             
----------                                                                                                                                                                                             
2016-03-22                                                                                                                                                                                             

SQL> -- 日期的四舍五入
SQL> select round(sysdate,‘year‘) from dual;

ROUND(SYSD                                                                                                                                                                                             
----------                                                                                                                                                                                             
2016-01-01                                                                                                                                                                                             

SQL> select round(sysdate,‘month‘) from dual;

ROUND(SYSD                                                                                                                                                                                             
----------                                                                                                                                                                                             
2016-03-01                                                                                                                                                                                             

SQL> select round(sysdate,‘day‘) from dual;

ROUND(SYSD                                                                                                                                                                                             
----------                                                                                                                                                                                             
2016-03-13                                                                                                                                                                                             

SQL> select sysdate from dual;

SYSDATE                                                                                                                                                                                                
----------                                                                                                                                                                                             
2016-03-15                                                                                                                                                                                             

SQL> select trunc(sysdate,‘day‘) from dual;

TRUNC(SYSD                                                                                                                                                                                             
----------                                                                                                                                                                                             
2016-03-13                                                                                                                                                                                             

SQL> -- 今天是星期二 天气真的很好
SQL> select to_char(sysdate,‘"今天是"yyyy-mm-dd day "天气真的很好") from dual;
ERROR:
ORA-01756: 引号内的字符串没有正确结束


SQL> select to_char(sysdate,‘"今天是"yyyy-mm-dd day "天气真的很好"‘) from dual;

TO_CHAR(SYSDATE,‘"今天是"YYYY-MM-DDDAY"天气真的很好"‘)                                                                                                                                                 
------------------------------------------------------------------------------------------------------                                                                                                 
今天是2016-03-15 星期二 天气真的很好                                                                                                                                                                   

SQL> -- 双引号的作用除了作为别名以外还可以作为日期格式里面的常亮
SQL> --常量
SQL> -- 将整数转换为一个字符串
SQL> select to_char(1524251,L999,999) from dual;
select to_char(1524251,L999,999) from dual
                       *
第 1 行出现错误:
ORA-00904: "L999": 标识符无效


SQL> select to_char(1524251,‘L999,999‘) from dual;

TO_CHAR(1524251,‘L999,999‘)                                                                                                                                                                            
------------------------------------                                                                                                                                                                   
##################                                                                                                                                                                                     

SQL> select to_char(1524251,‘L9,999,999‘) from dual;

TO_CHAR(1524251,‘L9,999,999‘)                                                                                                                                                                          
----------------------------------------                                                                                                                                                               
        ¥1,524,251                                                                                                                                                                                    

SQL> -- L 表示本地货比
SQL> select to_number(‘12345‘,‘99,99‘) from dual;
select to_number(‘12345‘,‘99,99‘) from dual
                 *
第 1 行出现错误:
ORA-01722: 无效数字


SQL> select to_number(‘12345‘,‘99,999‘) from dual
  2  ;
select to_number(‘12345‘,‘99,999‘) from dual
                 *
第 1 行出现错误:
ORA-01722: 无效数字


SQL> select to_number(‘123‘) from dual;

TO_NUMBER(‘123‘)                                                                                                                                                                                       
----------------                                                                                                                                                                                       
             123                                                                                                                                                                                       

SQL> -- 通用函数
SQL> -- nvl2 是nvl的一个加强版
SQL> -- nvl2(a,b,c) 如果a==null ,返回c否则返回b
SQL> select sal,nvl2(comm,comm,sal) from emp;

       SAL NVL2(COMM,COMM,SAL)                                                                                                                                                                         
---------- -------------------                                                                                                                                                                         
       800                 800                                                                                                                                                                         
      1600                 300                                                                                                                                                                         
      1250                 500                                                                                                                                                                         
      2975                2975                                                                                                                                                                         
      1250                1400                                                                                                                                                                         
      2850                2850                                                                                                                                                                         
      2450                2450                                                                                                                                                                         
      3000                3000                                                                                                                                                                         
      5000                5000                                                                                                                                                                         
      1500                   0                                                                                                                                                                         
      1100                1100                                                                                                                                                                         

       SAL NVL2(COMM,COMM,SAL)                                                                                                                                                                         
---------- -------------------                                                                                                                                                                         
       950                 950                                                                                                                                                                         
      3000                3000                                                                                                                                                                         
      1300                1300                                                                                                                                                                         

已选择14行。

SQL>  select sal,nvl2(comm,comm,sal), comm from emp;

       SAL NVL2(COMM,COMM,SAL)       COMM                                                                                                                                                              
---------- ------------------- ----------                                                                                                                                                              
       800                 800                                                                                                                                                                         
      1600                 300        300                                                                                                                                                              
      1250                 500        500                                                                                                                                                              
      2975                2975                                                                                                                                                                         
      1250                1400       1400                                                                                                                                                              
      2850                2850                                                                                                                                                                         
      2450                2450                                                                                                                                                                         
      3000                3000                                                                                                                                                                         
      5000                5000                                                                                                                                                                         
      1500                   0          0                                                                                                                                                              
      1100                1100                                                                                                                                                                         

       SAL NVL2(COMM,COMM,SAL)       COMM                                                                                                                                                              
---------- ------------------- ----------                                                                                                                                                              
       950                 950                                                                                                                                                                         
      3000                3000                                                                                                                                                                         
      1300                1300                                                                                                                                                                         

已选择14行。

SQL> -- nullif(a,b) 如果a == b 返回空,如果不等于返回a
SQL> select nullif(‘abc‘,‘abc‘) from dual;

NULLIF                                                                                                                                                                                                 
------                                                                                                                                                                                                 
                                                                                                                                                                                                       

SQL> select nullif(‘abc‘,‘abcc‘) from dual;

NULLIF                                                                                                                                                                                                 
------                                                                                                                                                                                                 
abc                                                                                                                                                                                                    

SQL> -- coalesce(a,b,c....)  从最左边开始查找,查找到第一个不为空的返回
SQL> select sal, comm, coalesce(sal,comm,empno) from emp;

       SAL       COMM COALESCE(SAL,COMM,EMPNO)                                                                                                                                                         
---------- ---------- ------------------------                                                                                                                                                         
       800                                 800                                                                                                                                                         
      1600        300                     1600                                                                                                                                                         
      1250        500                     1250                                                                                                                                                         
      2975                                2975                                                                                                                                                         
      1250       1400                     1250                                                                                                                                                         
      2850                                2850                                                                                                                                                         
      2450                                2450                                                                                                                                                         
      3000                                3000                                                                                                                                                         
      5000                                5000                                                                                                                                                         
      1500          0                     1500                                                                                                                                                         
      1100                                1100                                                                                                                                                         

       SAL       COMM COALESCE(SAL,COMM,EMPNO)                                                                                                                                                         
---------- ---------- ------------------------                                                                                                                                                         
       950                                 950                                                                                                                                                         
      3000                                3000                                                                                                                                                         
      1300                                1300                                                                                                                                                         

已选择14行。

SQL> select sal, comm, coalesce(comm,sal,empno) from emp;

       SAL       COMM COALESCE(COMM,SAL,EMPNO)                                                                                                                                                         
---------- ---------- ------------------------                                                                                                                                                         
       800                                 800                                                                                                                                                         
      1600        300                      300                                                                                                                                                         
      1250        500                      500                                                                                                                                                         
      2975                                2975                                                                                                                                                         
      1250       1400                     1400                                                                                                                                                         
      2850                                2850                                                                                                                                                         
      2450                                2450                                                                                                                                                         
      3000                                3000                                                                                                                                                         
      5000                                5000                                                                                                                                                         
      1500          0                        0                                                                                                                                                         
      1100                                1100                                                                                                                                                         

       SAL       COMM COALESCE(COMM,SAL,EMPNO)                                                                                                                                                         
---------- ---------- ------------------------                                                                                                                                                         
       950                                 950                                                                                                                                                         
      3000                                3000                                                                                                                                                         
      1300                                1300                                                                                                                                                         

已选择14行。

SQL> -- case 和decode ,case是sql99标准里面的内容,decode只有在oracle中支持
SQL> select sal 调前,
  2   case job
  3    when ‘PRESIDENT‘ then sal + 1000;
  when ‘PRESIDENT‘ then sal + 1000
                                 *
第 3 行出现错误:
ORA-00905: 缺失关键字


SQL>   when ‘MANAGER‘ then sal + 800;
SP2-0734: 未知的命令开头 "when ‘MANA..." - 忽略了剩余的行。
SQL>   sal + 400;
SP2-0042: 未知命令 "sal + 400" - 其余行忽略。
SQL>  end 涨后 from emp;
SP2-0734: 未知的命令开头 "end 涨后 f..." - 忽略了剩余的行。
SQL>
SQL>
SQL> select sal 调前,case job when ‘PRESIDENT‘ then sal + 1000;when ‘MANAGER‘ then sal + 800;sal + 400;end 涨后 from emp;
select sal 调前,case job when ‘PRESIDENT‘ then sal + 1000;when ‘MANAGER‘ then sal + 800;sal + 400;end 涨后 from emp
                                                           *
第 1 行出现错误:
ORA-00911: 无效字符


SQL> select sal, case
  2   when job = ‘PRESIDENT‘ then sal + 1000;
 when job = ‘PRESIDENT‘ then sal + 1000
                                      *
第 2 行出现错误:
ORA-00905: 缺失关键字


SQL> select sal 调前,case job when ‘PRESIDENT‘ then sal + 1000 when ‘MANAGER‘ then sal + 800 sal + 400 end 涨后 from emp;
select sal 调前,case job when ‘PRESIDENT‘ then sal + 1000 when ‘MANAGER‘ then sal + 800 sal + 400 end 涨后 from emp
                                                                                          *
第 1 行出现错误:
ORA-00905: 缺失关键字


SQL>
SQL> select sal 调前,case when job = ‘PRESIDENT‘ then sal + 1000 when job = ‘MANAGER‘ then sal + 800 sal + 400 end 涨后 from emp;
select sal 调前,case when job = ‘PRESIDENT‘ then sal + 1000 when job = ‘MANAGER‘ then sal + 800 sal + 400 end 涨后 from emp
                                                                                                  *
第 1 行出现错误:
ORA-00905: 缺失关键字


SQL> select sal, case
  2  when job = ‘MANAGER‘ then sal + 800
  3  end from emp;

       SAL CASEWHENJOB=‘MANAGER‘THENSAL+800END                                                                                                                                                         
---------- -----------------------------------                                                                                                                                                         
       800                                                                                                                                                                                             
      1600                                                                                                                                                                                             
      1250                                                                                                                                                                                             
      2975                                3775                                                                                                                                                         
      1250                                                                                                                                                                                             
      2850                                3650                                                                                                                                                         
      2450                                3250                                                                                                                                                         
      3000                                                                                                                                                                                             
      5000                                                                                                                                                                                             
      1500                                                                                                                                                                                             
      1100                                                                                                                                                                                             

       SAL CASEWHENJOB=‘MANAGER‘THENSAL+800END                                                                                                                                                         
---------- -----------------------------------                                                                                                                                                         
       950                                                                                                                                                                                             
      3000                                                                                                                                                                                             
      1300                                                                                                                                                                                             

已选择14行。

SQL> spool off;

单行函数·下

原文:http://www.cnblogs.com/877599949yan/p/5285002.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!