Oracle sql常用方法(持续更新)

来源:互联网 发布:次新人工智能概念股 编辑:程序博客网 时间:2024/06/15 03:08

1. 字符处理


1.去空格

--去前空格select ltrim('   1 1   ') aa from dual;  --1 1   --去后空格select rtrim('   1 1   ') aa from dual;  --   1 1--去前后空格select trim('   1 1   ') aa from dual;   --1 1--去前后中空格select replace('   aa  kk  ',' ','') abcd from dual;  --aakk

2.去回车符、换行符、空格符

最近碰到一条数据 值为:童勇\n 在java里面看不出来(显示:童勇 ),数据库里也看不出来(显示:童勇 ) 但在程序里面总不能出现想要的结果。
这里写图片描述

制表符 chr(9)
换行符 chr(10)
回车符 chr(13)

--去除换行update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(10),'');--去掉回车update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(13),'');--去掉空格update zhzl_address t set t.add_administration_num=trim(t.add_administration_num);

**参考:oracle中去掉回车换行空格的方法详解

2. oracle表复制


复制表结构及其数据:

create table table_name_new as select * from table_name_old

只复制表结构:

create table table_name_new as select * from table_name_old where 1=2;或者:create table table_name_new like table_name_old

只复制表数据:

--如果两个表结构一样:insert into table_name_new select * from table_name_old--如果两个表结构不一样:insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

3. Oracle对字符的判断(不知原因)


每条数据可能有如下状态:
这里写图片描述
如表中现在的数据:
这里写图片描述
如果我们现在要取状态220_WAIT_FINANCIAL_PRE_APPROVE 到 390_HAS_IMPORT,sql如下:

select sbh.boe_header_id, sbh.boe_status  from sie.sie_boe_headers sbh where sbh.boe_status >= '220'   and sbh.boe_status <= '390' order by sbh.boe_header_id desc;

结果如下:
这里写图片描述
注意:

select sbh.boe_header_id, sbh.boe_status  from sie.sie_boe_headers sbh where sbh.boe_status > '220'   and sbh.boe_status <= '390' order by sbh.boe_header_id desc;

这个sql查询的结果跟上面的结果是一样的。可这里明明写的是 >220。
所以需要成如下才会出现我需要的结果(改为 >221)。

select sbh.boe_header_id, sbh.boe_status  from sie.sie_boe_headers sbh where sbh.boe_status > '221'   and sbh.boe_status <= '390' order by sbh.boe_header_id desc;

正确结果:
这里写图片描述

4. 字符串 splitstr

select column_value as employee from table(splitstr( 'BGI5819,BGI11625,BGI11150,BGI11273,BGI7987',','))

这里写图片描述

5. 行转列 wm_concat

sbh表中一个ID 对应 bl表是的多条数据

select sbh.boe_num, bl.boe_line_id  from SIE.SIE_BOE_HEADERS SBH, sie.sie_boe_lines bl where sbh.boe_header_id = bl.boe_header_id   and sbh.boe_num = 'CRBC201506090057';

这里写图片描述

转列后

select sbh.boe_num, wm_concat(bl.boe_line_id)  from SIE.SIE_BOE_HEADERS SBH, sie.sie_boe_lines bl where sbh.boe_header_id = bl.boe_header_id   and sbh.boe_num = 'CRBC201506090057' group by sbh.boe_num;

这里写图片描述

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 证券客户号忘了怎么办 热收缩机有空气怎么办 韩国国籍签证到期想回国怎么办 休闲裤裤脚长了怎么办 电大本科统考考不过怎么办 一案涉及两个法律关系怎么办 法院调解书被告不执行怎么办 电视cas授权已过期怎么办 网贷逾期被仲裁怎么办 word所选内容无效怎么办 wps批注不显示了怎么办 船舶挂靠船务公司去要怎么办 被螃蟹扎了肿了怎么办 手指被海鲜刺了怎么办 被海鲜刺进去了怎么办 手被海鲜扎了怎么办 环评设备写错了怎么办 物业对高空抛物怎么办 如果法官不公平判案我该怎么办? 民事案夸省审理案件不公平怎么办 积目头像未通过审核怎么办 电压不稳空调带不动怎么办 孩子吃了塑料珠怎么办 美的电压力锅打不开盖子怎么办 瓶盖打不开怎么办 瓶子是玻璃的 杯子口关错位了怎么办 大玻璃瓶的玻璃瓶盖拧不开怎么办 按压式洗发水瓶盖打不开怎么办 向下按压的瓶盖打不开怎么办 玻璃罐头开过了打不开怎么办 玻璃瓶的塑料盖子打不开怎么办 泡酒玻璃瓶盖子打不开怎么办 罐头的塑料瓶盖打不开怎么办 塑料水杯盖紧了怎么办 拧不开矿泉水瓶盖怎么办 新暖壶盖吸住了怎么办 暖瓶盖被吸住了怎么办 做面包和面粘手怎么办 面包面和稀了怎么办 鱼缸氧气泵声音大怎么办 中班安全遇到火灾怎么办反思