总结

sql工作总结--

--1.  组函数的使用
count sum max min 这些组函数的使用。。max(name) 保证唯一

--2.sql 大小判断 
 A >  'value'  AND A < 'value' 不能写成   'value1' < A < 'value2'
 
 --3. insert into 
  INSERT INTO (字段1,字段2,...) SELECT 字段值1,字段值2 ,...  FROM  table_name
  要插入的字段值为查询到的值,一一对应,否则出现:没有足够值或者值过多。
 
 --4. 函数trim的使用
  Trim() 功能:删除字符串首部和尾部的空格。 语法:Trim ( string )
  --各种 trim 函数的语法如下:
  LTRIM(字串):将字串左边的空格移除。
  RTRIM(字串): 将字串右边的空格移除。
  TRIM(字串): 将字串开头和末尾的空格移除。
  ALLTRIM(字串):将字串左右边两边的空格移除  --*
 
 --5. 多表数据汇总的处理方法
  从不同的表中取得的数据插入到一张临时表中(判断插入的东西是否会造成唯一键冲突) 不然不同表传入不同的键值
  所有表所筛选出的所有数据插入到临时表中,目标表的数据从临时表取得。
 
 --6. case when的使用
  sum(case when date_id = '%s' then trans_cnt else 0 end)
   THEN 后面只能做一次    不能 THEN 值1,值2
   --①
   CASE WHEN 条件 THEN 值 ELSE 值 ('0'或'null')
   --②
   CASE WHEN 条件 THEN 值 ELSE 值
             WHEN 条件 THEN 值 ELSE 值
             ELSE  '0'  OR 'null';
              
 --7.季度函数
    --季度
procedure crm_get_quarter(wrkdate varchar2,q_num out varchar2) IS  --  (此处 'out varchar2' 类型可以更改)
           --   VARCHAR2     =>   NUMBER     to_number ('CHAR')  如:To_number(substr(wrkdate, 1, 4));   否则造成不匹配的错误
    mm_num varchar2(10);
    yu_num varchar2(10);
  begin
    yu_num := substr(wrkdate,1,4);
    mm_num := substr(wrkdate,5,2);
   case
     when mm_num in('01','02','03') then
       if mm_num = '01' then
         q_num := ''''||yu_num||'01'||'''';
       elsif mm_num = '02' then
         q_num := ''''||yu_num||'01'||''''||','||''''||yu_num||'02'||'''';
       else
         q_num := ''''||yu_num||'01'||''''||','||''''||yu_num||'02'||''''||','||''''||yu_num||'03'||'''';
       end if;
     when mm_num in('04','05','06') then
       if mm_num = '04' then
         q_num := ''''||yu_num||'04'||'''';
       elsif mm_num = '05' then
         q_num := ''''||yu_num||'04'||''''||','||''''||yu_num||'05'||'''';
       else
         q_num := ''''||yu_num||'04'||''''||','||''''||yu_num||'05'||''''||','||''''||yu_num||'06'||'''';
       end if;
     when mm_num in('07','08','09') then
       if mm_num = '07' then
         q_num := ''''||yu_num||'07'||'''';
       elsif mm_num = '08' then
         q_num := ''''||yu_num||'07'||''''||','||''''||yu_num||'08'||'''';
       else
         q_num := ''''||yu_num||'07'||''''||','||''''||yu_num||'08'||''''||','||''''||yu_num||'09'||'''';
       end if;
     when mm_num in('10','11','12') then
       if mm_num = '10' then
         q_num := ''''||yu_num||'10'||'''';
       elsif mm_num = '11' then
         q_num := ''''||yu_num||'10'||''''||','||''''||yu_num||'11'||'''';
       else
         q_num := ''''||yu_num||'10'||''''||','||''''||yu_num||'11'||''''||','||''''||yu_num||'12'||'''';
       end if; 
   end case;
  end;

转载于:https://my.oschina.net/u/1758069/blog/512179

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值