我有两张table一张是 order
以及其他 sales
```
+-------------+
| OrderNumber |
+-------------+
| 1 |
| 2 |
+-------------+
+---------------+
| SalesNumber |
+---------------+
| /sales/1/lep |
| /sales/test/2 |
+---------------+
所以我想用左连接来表示数字重合的表,所以我想:
select * from order as o
left join sales as s on s.SalesNumber LIKE '%/'+o.OrderNumber+'%'
但是如果你犯了一个错误
将varchar值“%”转换为int数据类型时,转换失败。
我做错什么了?
2条答案
按热度按时间ajsxfq5m1#
你需要投下
OrderNumber
列作为VARCHAR
然后做一个CONCAT
或者+
形成组合字符串的操作。试试这个:
如果有用的话就告诉我!
gj3fmq9x2#
一个优点
concat()
你不需要转换——这个函数把数字转换成字符串。所以:你可以用
+
,但必须转换为字符串:注意上面有一个长度
varchar()
. 指定字符串时,请始终在sql server中使用长度。默认值因上下文而异,可能不符合您的要求。