在很多场景中,都有如下情况
trim(a.colunm1) = trim(b.colunm2)
应该怎么优化呢?
用到 TRIM 的很多原因是某些系统为了提高查询效率,不使用 ORACLE 的特有的,优秀的,且前无古人后无来者定义的 VARCHAR2 ,而是使用 CHAR 类型,写死了字符长度。
因此,在关联查询的时候就郁闷了,新建立的表就使用的 VARCHAR2 ,如果不用 TRIM 去掉 CHAR 类型的空格吧,又没办法匹配,如果用 TRIM 吧,索引又被破坏。
而且,重点是,虽然添加一个TRIM(COLUNM1)索引能提高查找效率,但是也增加了存储空间,并且影响写入效率。
怎么办!!!!怎么办!!!
还好你看了我的文章,因为我的聪明才智,想到了补全空格的方法:
RPAD(A.COLUNM1,'字符长度','空格') = B.COLUNM2
这样是否完美解决了呢!
效率还倍儿高!
后来发现这不是我的原创,百度早有了。。。