oracle常用sql

来源:互联网 发布:程序员必备物品 编辑:程序博客网 时间:2024/05/10 12:42

1.备份数据表中的数据,创建临时表

create  table common_import_bak  as select * from common_import

2.把一个表中的 数据导入到另一个表中



insert into sec_user 
(
id,
name,
type,
login_id,
password,
email,
mobile_phone,im,telephone,sex,birthday,status,org_id,rank,created_by,created_date,last_updated_by,last_updated_date
)


select 
sys_guid() ,
 t.c1,
'local',
t.c3,
'ICy5YqxZB1uWSwcVLSNLcA==',
'',
'',
'',
'',
'U',
'',
'enabled',
t.c2,
'',
'system',
  sysdate ,
'system',
  sysdate  from common_import t



case  when    的用法


select  ta.*,
         (case
        when ta.isGSF=1 THEN  repair_name||'(工时费)' 
        
        when ta.isGSF=0  THEN  repair_name
        
        end)  repairName
      from
(select
   t.bill_id, t.repair_id ,t.repair_name,t.price/100  price,t.quantity,
        t.repair_total_price/100 totalprice,
       t.repair_part_id,
        decode((select tr.is_key from T_RESTYPE tr  where t.repair_part_id=tr.id),0,'否',1,'是') iskey,
        ( select max(tr.start_time) from t_repair_bill tr where tr.bill_id < t.bill_id)
        lastRepairTime,
        (select count(*) from t_restype_detail trd,t_restype tr  where t.repair_part_id=trd.id and trd.res_type_id = tr.id  and tr.path like '%'||'df9394e09f974345b2b142a3a589ac95'||'%')  isGSF
        
        
        
      
        from t_car_repair t
       
         where 1=1  ) ta 
         
         现在想用isGSF这个字段进行判断  重新生成repairName,可以在整个查询外边再套一层select

oracle wm_concat(column)函数的使用

     SELECT ID,  NAME, DESCRIPTION,(CASE S.TYPE WHEN 2 THEN '混合角色' WHEN 1 THEN '流程角色' ELSE '功能角色' END) TYPE,
   CREATED_BY,CREATED_DATE,LAST_UPDATED_BY,
 
 (SELECT   wmsys.wm_concat(C.NAME) 
  FROM   SEC_ROLE_INHERITANCE SRI,SEC_ROLE C  WHERE  SRI.CHILD_ROLE_ID = C.ID AND S.ID=SRI.PARENT_ROLE_ID) extendsRole
,
   -- 因为红色部分查询出来的是多条记录,所以要用wmsys.wm_concat这个函数转换一下,此函数的功能是将多行转换成一行数据  用逗号隔开。

比如:

shopping:

-----------------------------------------

u_id       goods            num

------------------------------------------

1                苹果                2

2                 梨子               5

1                 西瓜               4

3                 葡萄               1

3                香蕉                1

1               橘子                 3

=======================

想要的结果为:

--------------------------------

u_id          goods_sum

____________________

1              苹果,西瓜,橘子

2              梨子

3              葡萄,香蕉

---------------------------------

  1. select u_id, wmsys.wm_concat(goods) goods_sum  
  2.  
  3. from shopping  
  4.  
  5. group by u_id  

想要的结果2:

--------------------------------

u_id          goods_sum

____________________

1              苹果(2斤),西瓜(4斤),橘子(3斤)

2              梨子(5斤)

3              葡萄(1斤),香蕉(1斤)

---------------------------------

使用oracle wm_concat(column)函数实现:

  1. select u_id, wmsys.wm_concat(goods || '(' || num || '斤)' ) goods_sum  
  2.  
  3. from shopping  
  4.  
  5. group by u_id  

    
      LAST_UPDATED_DATE
 FROM SEC_ROLE S
 
WHERE 1=1   



0 0
原创粉丝点击