删除或向查询添加其他字符串

时间:2015-04-07 08:44:05

标签: sql-server

在表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,上述查询无效。

2 个答案:

答案 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'是你的项目没有列的最大长度