常用的sql

1.Oracle:查询出数字显示文字:select decode(字段 ,0,'未发布',1,'发布') from 表 

2.Oracle:时间段的查询:select * from cms_b_knowledge_release a
where 1=1
and to_char(a.release_date,'yyyy-mm-dd')>='2016-09-16' 
and
to_char(a.release_date,'yyyy-mm-dd')<='2016-09-18' 

或者to_date(a.release_date,'yyyy-mm-dd')

3.Oracle:删除表字段:alter table 表名 drop column 表字段

4.Oracle:批量删除:delete from 表名 ab where ab.id in (:要删除的字段集合)

delete from CMS_B_KNOWLEDGE_RELEASE ab where ab.id in (:idlist)

5.Oracle:SQL 两列字段,合并为一个字符串,中间加符号 ||'--'||

日期起--日期止:to_char(bc.contract_date_start,'yyyy-mm-dd')||'--'||to_char(bc.contract_date_end,'yyyy-mm-dd')

6.Oracle:将一张表的数据导入另一张表:对应字段的导入

insert into cms_c_bdgt_project(id,year,project_name,project_code,department_id)
select sys_guid(),bpt.year,bpt.project_name,bpt.project_code,bpt.deptId from cms_c_project_temp bpt;

7.Oracle:查询表数据并且只过滤掉一个字段的重复数据,其他字段数据正常显示

SELECT sys_guid(),max(a.id), max(a.dic_number),max(a.business_memo) FROM cms_c_provider_vat_temp a GROUP BY a.vat_id HAVING COUNT(*) >= 0;过滤vat_id 重复数据

8.Oracle:查询条件,如果某个字段为空返回E3 不为空返回E2

NVL(E1, E2,E3)

9.Oracle:查询两张类似的表,查询出来的字段相同只是数据不同时

select id  from cms_b_contract_bill  union all select  id  from cms_b_contract_ext_bill 

10.Oracle:sql中时间转换成天数、小时....

ROUND(TO_NUMBER(bc.complete_date - bc.create_date)) 天

ROUND(TO_NUMBER(bc.complete_date - bc.create_date)*24) 小时

11.Oracle:从一张表中查询出某个字段的数据并更新到另一张表的一个字段的数据当中

update scm_contract_change_detail dd set dd.draft_contract_id = (select aa.draft_contract_id from scm_contract_change_apply aa where dd.apply_id = aa.id)
where exists (select 1 from scm_contract_change_apply cc where dd.apply_id = cc.id)

12.oracle:将数据库的一列合并到一行

select  wm_concat(字段)/replace(wm_concat(字段),',',',') from  table

13.递归

start with t.id=0 connect by prior t.id=parent_org_id

14.存在更新不存在插入(一条sql实现)

MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and [...]...)  
WHEN MATCHED THEN  
    [UPDATE sql]  
WHEN NOT MATCHED THEN  
    [INSERT sql]  

A表和B表满足on中的条件 存在更新不存在插入,eg:

MERGE INTO table A
using (select b.b1,b.b2,b3 from table b,table c where b4=c4 ) B
on (A.a1=B.b1 and A.a2=B.b2 and A.a3=B.b3)
WHEN MATCHED THEN
  update set A.a4 = B.b3
WHEN NOT MATCHED THEN
  insert (a1,a2,a3,a4,a5) values
  (b1,b2,b3,b4,b5)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值