• 全部
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流
  • 问答

请教怎么在sql中把' abc 过滤成'abc'

jackedfang 2003-03-19 10:13:11
set serveroutput on;
declare
aa char(10);
begin
select a_1 into aa from a where A_1='abc';
if aa='abc' then
dbms_output.put_line('haha');
else
dbms_output.put_line('hehe');
end if;
end;
/
在a表中字段a_1对应的属性值是‘ abc’,也就是说在字符串abc前面有空格,我现在想在查询中忽略空格,得到abc这样的值,然后输出haha,而不是hehe.
...全文
16 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shuipipi 2003-03-19
ltrim()、rtrim()、trim()

分别是去掉左、右、所有空格的函数
回复
beckhambobo 2003-03-19
显得麻烦的话,可以把所有空格值在开发前端处理好。

那显得后台多大压力
回复
bzszp 2003-03-19
11:05:25 SQL> select replace(' a b c ',' ','') from dual;

REP
---
abc

实际:4326
11:26:31 SQL>
回复
jackedfang 2003-03-19
空格在中间呢?我还以为不同位置的空格所用的函数都不一样呢。
回复
bzszp 2003-03-19
trim

10:43:29 SQL> insert into tcc(aaa) values(' abc ');

已创建 1 行。

实际:721
11:05:08 SQL> select * from tcc where trim(aaa)='abc';

AAA BBB
---------- ----------
abc
abc
abc

实际:251

这种事自己亲自试一下不就知道了,
晕倒......
回复
jackedfang 2003-03-19
谢谢大家。那么如果空格在后面用什么函数呢?前后都有空格又怎么样呢?
回复
ww_xiaohua 2003-03-19
select a_1 into aa from a where trim(A_1)='abc';
if aa='abc' then
dbms_output.put_line('haha');
else
dbms_output.put_line('hehe');
end if;
回复
czhai 2003-03-19
同意楼上几位的方法:TRIM
回复
bzszp 2003-03-19
10:42:21 SQL> select * from tcc;

AAA BBB
---------- ----------
abc
abc

实际:50
10:42:55 SQL> select * from tcc where aaa='abc';

AAA BBB
---------- ----------
abc

实际:50
10:42:27 SQL> select * from tcc where trim(aaa)='abc';

AAA BBB
---------- ----------
abc
abc

实际:130
10:42:55 SQL>
回复
jackedfang 2003-03-19
我的意思是:在a表中有字段a-1,对应的属性值是‘ abc’,空格是是因为失误敲如的。现在我用select查询有abc的这条记录,但是现在表中的‘abc’已经变成了‘ abc’了,用什么方法可以使‘abc'和‘ abc’等价。
回复
bzszp 2003-03-19
trim()

10:14:53 SQL> select trim(' abc') from dual;

TRI
---
abc

实际:1221
10:14:57 SQL>
回复
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2003-03-19 10:13
社区公告
暂无公告