在表1中,我有以下数据:
Stock_no Description
245685 Item1 Description
958565 Item2 Description
在表2中,我有:
Barcode Item_no
48002456854582 000245685
48003658458693 000958565
在我的查询中,我想JOIN
两个表,表1的stock_no
类似于表2的item_no
。
有没有办法可以将0截断到Table1的stock_no
,或者删除Table2的前导0?
到目前为止我所拥有的:
SELECT A.stock_no, B.barcode, A.description
FROM A.Table1
JOIN B.Table2 ON A.stock_no = B.item_no
由于Table2中item_no
的前导000,上述查询无效。
答案 0 :(得分:2)
你可以这样做,但如果存在索引,则不会使用索引:
SELECT *
FROM Table1 t1
JOIN Table2 t2 ON CAST(t1.stock_no AS INT) = CAST(t2.item_no AS INT)
答案 1 :(得分:2)
您可以使用子字符串方法,如:
select substring(ColumnName, patindex('%[^0]%',ColumnName), 10)
您的选择应如下所示:
SELECT A.stock_no, B.barcode, A.description
FROM A.Table1 JOIN B.Table2
ON A.stock_no = substring(B.item_no,patindex('%[^0]%',B.item_no),10)
第二个参数'10'是你的项目没有列的最大长度