oracle 查询条件有空格

如表t1,字段A1(字符型);表t2,字段A2(字符型)。A1=‘020 ’(后面可能多个空格),A2=‘020’(没空格)
语句:select * from t1 inner join t2 on A1=A2
结果就是得不到。
请教了。
length(trim(A1)) 竟然是5?
真的是换行啊,那怎样消除掉啊?
答案:replace(A1,chr(10), '') = A2

字符分好几种,
char型是定长,假如长度是20,你里边的内容如果是000,那么系统将给这个000补充17位的空格
varchar2是不定长,就是假如长度是20,那么最大不能超过20,如果是000,你取下length,它就是3

trim是左右都去空格,rtrim是右去空格,还有个ltrim是左去空格,这里觉得你还是用trim函数比较好
-----------补充----------
那就有可能不是空格,有可能是换行符或者其他好像空格的符号
-----------补充2----------
update 表名 set 字段名=replace(字段名,chr(10),char(13));

先用上边的把换行符转成空格
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-18
加个trim就好了
select * from t1 inner join t2 on trim(A1)=trim(A2)
第2个回答  2010-08-18
‘’之间是值。
相似回答