oracle 去除空格
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 去除空格相关的知识,希望对你有一定的参考价值。
我有一张表 bo 有一列 name 里边的数据 是:
张 三
王 二
李 佳
王明
名字中间有些有空格,我想把空格去掉,语句怎么写?
直接在数据库查。
update table set name=replace(name," ","");select replace(name," ","") from table;
两种方式均可,第一种将数据库中数据改变,第二种不改变数据库中的数据,直接查询。需要用到replace()函数。含义为:替换字符串;replace(原字段,“原字段旧内容“,“原字段新内容“)。
扩展资料:
oracle常用字符串函数
1、CHR
语法: chr(x)
功能:返回在数据库字符集中与X拥有等价数值的字符。CHR和ASCII是一对反函数。经过CHR转换后的字符再经过ASCII转换又得到了原来的字符。
使用位置:过程性语句和SQL语句。
2、CONCAT
语法: CONCAT(string1,string2)
功能:返回string1,并且在后面连接string2。
使用位置:过程性语句和SQL语句。
3、INITCAP
语法:INITCAP(string)
功能:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用.空格或给字母数字字符进行分隔。不是字母的字符不变动。
使用位置:过程性语句和SQL语句。
4、LTRIM
语法:LTRIM(string1,string2)
功能:返回删除从左边算起出现在string2中的字符的string1。String2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当遇到不在string2中的第一个字符,结果就被返回了。LTRIM的行为方式与RTRIM很相似。
使用位置:过程性语句和SQL语句。
5、NLS_INITCAP
语法:NLS_INITCAP(string[,nlsparams])
功能:返回字符串每个单词第一个字母大写而单词中的其他字母小写的string,nlsparams
指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。Nlsparams可以使用的形式是:
参考技术Aoracle去除空格可用replace语句。
如test表中有如下数据:
去掉str字段中的空格,可用如下语句;
update test set str=replace(str,' ','');commit;
执行后,表中数据为:
即空格已经去掉了。
然后找那个语言里面的去处空格的函数,然后读出内容,去除空格
如asp是trim() php的 chop()等等。。
找到符合的函数 参考技术C 直接在数据库查:
select replace(name,' ','') from bo;本回答被提问者采纳 参考技术D replace('sdf dsfa',' ','')
oracle复习
十一、replace 替换
格式:(原字符串,要查找的字符或字符串,替换的字符或字符串)
select replace(‘hello world‘,‘o‘,‘a‘) from dual; //替换时区分大小写
select e.empno,replace(e.ename,‘S‘,‘J‘) from emp e;
十二、去除空格的函数
trim 去除字符串2边的空格
ltrim 去除字符串左边的空格 (left)
rtrim 去除字符串右边的空格 (right)
十三、日期类型
to_date:(把字符串转换成日期的函数)
to_date(要转换成日期的字符串, 转换格式)
select to_date(‘2017-04-20 14:30:12‘,‘yyyy-mm-dd HH24:mi:ss‘) from dual;
to_char() (可以把日期或数字转换成字符串)
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss:SSSS‘) from dual;
select to_char(1234.5, ‘$9999D9‘) from dual;
--查询今天是今年的多少天
select to_char(sysdate, ‘DDD‘) from dual;
--查询当月的多少天
select to_char(sysdate, ‘DD‘) from dual;
--查询这个星期的第多少天
select to_char(sysdate, ‘D‘) from dual;
to_number--把字符数字 转换成数字
计算2个日期之间相差的天数
select trunc(sysdate-hiredate) from dual;
--当前日期前5年的时间
select sysdate, sysdate - interval ‘5‘ year from dual;
--当前日期前5个月的日期
select sysdate, sysdate - interval ‘5‘ month from dual;
months_between 返回2个日期之间相差的月数
add_months --在一个日期基础上增加若干个月
select add_months(sysdate, 2) from dual;
select add_months(sysdate, -2) from dual;
last_day--返回当月的最后一天
select to_char(last_day(sysdate), ‘yyyy-mm-dd‘) from dual;
十四、查询记录总数
select count(*) from 表名
select count(*) from emp;
select count(1) from emp;
select count(comm) from emp; //只会统计comm != null 的 记录
1.求最大工资的员工
select max(sal) from emp where sal is not null;
2:求最小值的数据
select min(列名) from 表名
3:求和
select sum(列名) from 表名
4:求平均值
select avg(列名) from 表名
5.连合查询,求值的字段必须是数值类型的字段
select avg(sal),sum(sal),max(sal),min(sal) from emp;
6:分组查询
--查询出每个部门的平均工资(按部门分组)
select floor(avg(sal)),deptno from emp group by deptno;
--查询每个部门的总工资和,平均工资,最高工资
select floor(avg(sal)) as 平均工资,sum(sal) 总工资, max(sal) 最高工资,deptno from emp group by deptno;
--查询每个部门,每个工作的总工资和
select sum(sal) 总工资, deptno, job from emp group by deptno,job
--查询出每个部门,每个工种的总人数
select count(1),deptno,job from emp group by deptno,job;
--查询每个部门的员工数
select count(1),deptno from emp group by deptno;
十五、列的操作
1.新增列
ALTER TABLE (表名) ADD (列名 数据类型);
alter table t_test add tname nvarchar2(20);
2.改某个表某个列的数据类型
ALTER TABLE (表名) MODIFY (列名 数据类型);
alter table t_test modify tname nvarchar2(20);
3.更改列名
ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名); /////不需要括号
alter table t_test rename COLUMN tname to tname2
4.删除某列
ALTER TABLE (表名) DROP COLUMN (列名);
alter table t_test drop COLUMN tname2
5.重命名表名
ALTER TABLE (当前表名) RENAME TO (新表名);
alter table t_test rename to t_test2;
以上是关于oracle 去除空格的主要内容,如果未能解决你的问题,请参考以下文章