SELECT A.*
FROM QMS100M A,QMS200M B
WHERE A.SC_NO=B.SC_NOQMS100M.SC_NO varchar2(11) 主键
QMS200M.SC_NO varchar2(11) 非主键
QMS100M中存在一条记录,SC_NO为'12345678901'
QMS200M中存在一条记录,SC_NO为'12345678901'执行如上SQL语句,结果为空。若使用trim(A.SC_NO)=B.SC_NO,则可以查询到一条记录
请问不使用trim如何解决这个问题,谢谢各位了
FROM QMS100M A,QMS200M B
WHERE A.SC_NO=B.SC_NOQMS100M.SC_NO varchar2(11) 主键
QMS200M.SC_NO varchar2(11) 非主键
QMS100M中存在一条记录,SC_NO为'12345678901'
QMS200M中存在一条记录,SC_NO为'12345678901'执行如上SQL语句,结果为空。若使用trim(A.SC_NO)=B.SC_NO,则可以查询到一条记录
请问不使用trim如何解决这个问题,谢谢各位了
总面言之有空格
或者用LIKE
varchar2 会自动补空格。
sql 没有问题
update QMS100M set SC_NO=trim(SC_NO)
然后再执行上面的查询,依然找不到记录
你数据库里存的有问题?
这样的SQL语句,完全没问题
为什么我没碰到这样的问题啊.使用trim能查出结果,就说明你字符里存在空格.
--这样吧,运行一下下面的语句看一下好不好?SELECT A.sc_no||b.sc_no,b.sc_no||a.sc_no FROM QMS100M A, QMS200M B WHERE A.SC_NO = B.SC_NO;
SELECT RAWTOHEX(SC_NO), LENGTHB(SC_NO)
FROM QMS100M
WHERE SC_NO LIKE '%12345678901%';SELECT RAWTOHEX(SC_NO), LENGTHB(SC_NO)
FROM QMS200M
WHERE SC_NO LIKE '%12345678901%';
2.重建QMS200M表吧!