资讯详情

Oracle常用sql语句

1.

一行显示多行数据sql:(用sum函数或max函数,当lc为1时DQSYJRZC的值) sum函数只能检查字段类型number类型,如果字段值是汉字,则使用max函数

select nsrsbh , sum(decode(lc,1,DQSYJRZC)) JYXJRZC1,sum(decode(lc,2,DQSYJRZC)),sum(decode(lc,3,DQSYJRZC)),sum(decode

(lc,4,DQSYJRZC)),sum(decode(lc,5,DQSYJRZC)) JYXJRZC2 from sb_nd_f07 t

where nsrsbh='371325751788249' and t.skqsrq=20120101 and t.skjzrq=20121231 group by nsrsbh

2.修改表名sql:

rename gsj_wsfwt_dm_swjg_ds to gsj_nsxydj_dm_swjg_ds;

3.

将空值转换为字符串:

decode(TT.BGYY,null,'')

数据库字符串连接:(用||)

'评定为' || tt.pdjg || '级。' || decode(TT.BGYY,null,'')

4.

将查询表的数据插入另一个表:

insert into gsj_nsxydj_gy_pdlc_ls(id,slh,nsrsbh,nsrmc,wsdm,lzzt,clsj,clry)

select gsj_gy_pdlc_ls.nextval,t.slh,t.nsrsbh,t.nsrmc,t.wsdm,t.dqzt,clsj,'" dqry.getSwry_dm() "' from gsj_nsxydj_gy_pdlc t where

t.nsrsbh = '" data.getNsrsbh() "' and t.pc_dm = '" data.getPc_dm() "' and t.wsdm = 'pd001'"

5.

索引的强制使用:

select /* index(dj_nsrxx IDX_DJ_NSRXX_P_NSRSBH) */ * from dj_nsrxx

6.

减去(查询一个表比另一个表的多余数据)

select d.nsrsbh

from temp_bd d

minus

select d.nsrsbh

from temp_bd2 d

7

--查询重复记录

select t.nsrsbh, count(t.nsrsbh)

from cs_bd2 t

having count(t.nsrsbh) > 1

group by t.nsrsbh

多个字段查询重复记录

--只显示一个重复数据(去重复):

select max(p_ID),POI_ID,t_id from T_TEM_PLACEINFO group by POI_ID,t_id

--删除重复数据:

delete from T_TEM_PLACEINFO where rowid not in (select min(rowid) from T_TEM_PLACEINFO group by POI_ID,t_id );

8.

分析表;analyze table gsj_nsxydj_zzdf_zd compute statistics

9.截字符串:

select substr(t.nsrsbh,-9)

from dj_nsrxx t

where t.nsrsbh = '371325751788249'--------751788249

10.查询数据对应行数:

select rownum from zzs_xgmnsr_basedata_2012 t

11.

.复制表结构建表:

create table Sb_Cwbb_Zcfzb_2013 as select * from SB_CW_ZCFZB_2007 where 1=2;

从另一个表中抽取数据

insert into table1 select *from user.table2

12

条件sql语句(case...when...then...end):

select t.ywlx_dm,(case ywlx_dm when '0072' then '呵呵' when 'XG01' then '小规模' end) ywlx

from dm_ywcd t where t.ywlx_dm in ('0072','XG01')

13

表解

SELECT OBJECT_ID,SESSION_ID,SERIAL#,

ORACLE_USERNAME,OS_USER_NAME,S.PROCESS

FROM V$LOCKED_OBJECT A,

V$SESSION S WHERE A.SESSION_ID=S.SID

查出被lock 的对象

然后 alter system kill session 'sid,serial#';

14.

查询用户所在的表空间:

select username,default_tablespace from dba_users order by username;

15.

添加表字段:

alter table GSJ_WSFWT_KYDJ_HHRTZQK add (HHRZJHM varchar2(20),HHRZJZL varchar2(20) );

修改表字段:

alter table GSJ_WSFWT_DM_ZJ modify (ZJ_DM char(3))。

16

创建临时表 :

CREATE GLOBAL TEMPORARY table tabxml (str1 clob )

ON COMMIT DELETE ROWS

23.sql计算;to_char((B-C)/decode(C,0,1,C)*100,'FM999990.00') D,

24.查询12个月前的时间:

selectadd_months(sysdate,-12)fromdual;

23.查看客户端的字符集:

selectuserenv('language')fromdual;

24.查询所有表名

select*fromuser_tables;

25.批量更改某些字段(以税务机关为例):

update xydj.nsxydj_dj_nsrxx a set (zgswry_dm,swjg_dm,nsr_swjg_dm)=(select ssgly_dm,zgswskfj_dm,zgswskfj_dm fromhxDj.dj_nsrxx@gt3_sjqfkb where

a.djxh = b.djxh);

26.批量评定 D级原因统一设置了一样的,现在根据违章代码,修改对应的原因;

update xydj.gsj_nsxydj_zzdj_gs a set bgyy =(select max(c.fjsx) from xydj.nsxydj_dj_nsrxx dj,xydj.gsj_nsxydj_zb_djxx b,xydj.gsj_nsxydj_dm_ypfj c where

b.wfwzdm=c.pfbz_dm and d.djxh = b.djxh and a.nsrsbh = dj.nsrsbh )

where pdjg='D' and bgyy = 认定为异常户;

27.sql如何判断是否含有中文?

使用函数length和lengthb来判别

使用函数length与lengthb判断是基于中文字符占用2~4个字节,而ASCII如果字符占用一个字节,则进行比较LENGTH与LENGTHB它会有所不同。这样,就可以判断字段中是否包含中文字符,但跟随ASCIISTR同样,如果里面没有ASCI字符包含非中文,无法判断。还有取巧的嫌疑。

SELECT NAME_ONE FROM TEST WHERE LENGTH(NAME_ONE) != LENGTHB(NAME_ONE);

28.创建dblink语句

createpublicdatabaselinkTESTLINK2(dblink名)connecttoWANGYON(数据库用户名)identifiedby"123456"(密码)USING'ORCL21'(数据库实例名)

查询WANGYOU中的user表

select * from WANGYOU.user@TESTLINK2 order by id

本文由站长原创或收集,不代表本网站的。如果转载,请注明来源:http://ww.swzhinan.com/post/1.html

标签: 二极管pdlc05

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台