2015-04-07 40 views
0

在表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截斷爲表1的stock_no或rem在表2的前導0之前?

我有什麼至今:

SELECT A.stock_no, B.barcode, A.description 
FROM A.Table1 
    JOIN B.Table2 ON A.stock_no = B.item_no 

因爲在表2 item_no領先的000,上面的查詢是行不通的。

+0

cast(item_no as int) –

回答

2

你可以這樣做,但如果存在的話,這將不會使用索引:

SELECT * 
FROM Table1 t1 
     JOIN Table2 t2 ON CAST(t1.stock_no AS INT) = CAST(t2.item_no AS INT) 
2

您可以使用subtring方法,如:

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'是您的最大長度item_no列

+0

這也很好。謝謝.. – jaa2013