oracle语句模板
这里用来记录碰到的一些需求并记录下来
1.查询出某个字段重复的数据值取n条显示
例如表table数据 根据b字段去重
a b c id(主键不重复下面不写了就)
1 2 2
1 2 3
1 2 4
2 1 1
2 3 1
查出来最后:
1 2 x(这个地方按排序来) 主键(下面一样就省略了)
2 1 1
2 3 1
在这里插入代码片
select * from (
select row_number() over(
partition by 要去重的字段 order by 显示优先级所依据的排列字段 desc)
rn ,t.* from table_name t)where rn =1(这个参数控制显示的条数)
2.截取某个字段前面或后面的全部内容
select 字段,substr(字段,1,instr(字段,’?’) - 1) 前,substr(字段,instr(字段,’?’) + 1,length(字段)) 后 from 表
其中?为需要截取的字段,
3.去空格,回车,换行符
在这里插入代码片
--去除换行
update 表名 t set t.字段=replace(t.字段,chr(10),'');//或者直接把换行以字符串的形式替换char(10)
--去掉回车
update 表名 t set t.字段=replace(t.字段,chr(13),'');//或者直接把回车以字符串的形式替换char(13)
--去掉两边空格
update 表名 t set t.字段=trim(t.字段);
--去掉中间空格
update 表名 t set t.字段=replace(t.字段,' ','');