有一批手写的款号。需要在我们系统里转换为产品的 ID 。事情本来很简单。比如给的是:"XL06-1692T " ,我只要去数据库产品表匹配“ XL06-1692T ”,然后给 ID : 123456.我简化一下。
select T.sku,P.ID from Table T left outer join product P on T.sku=T.productno
结果匹配不上。
我做的几次尝试:
1.两边字符串去空格重新匹配。不行。
2.两边都用相同的字符集。有人说等宽字节导致的,还有大小写导致的。转换后还是不行。
3.字符都转换为 varchar ( 20 ),还是不行。
4.在 excel (数据库里面的数据太大了,我只选择两个相同的在 excel 测试一下)看是否可以匹配,还是不行。
5.现在唯一可以的就是:
select T.sku,P.ID from Table T left outer join product P on T.sku like T.productno+'_'
顾客的 len 长度不知道为什么就是要多一位。我也不知道疏漏了什么环节,
1
ArthurKing 2016-12-24 15:22:37 +08:00
3.字符都转换为 varchar ( 20 ),还是不行。
转换后是否删除末尾空格? |
2
RE 2016-12-24 15:24:39 +08:00
确定不是 sql 写错了么……
T.sku = T.productno ? join product P ? |
3
ArthurKing 2016-12-24 15:26:16 +08:00 1
把表里的数据拿到支持 16 进制显示的编辑器中看看是否有不可见字符? rtrim 之类的函数只能去除半角空格
|
4
ebony0319 OP @ArthurKing 确实,有一个隐藏的尾巴,但是肉眼是看不出来的。
|
5
mingyun 2016-12-25 09:57:03 +08:00
@ArthurKing 果然老司机
|