Sql server 删除或向查询中添加其他字符串
在表1中,我有以下数据:Sql server 删除或向查询中添加其他字符串,sql-server,Sql Server,在表1中,我有以下数据: Stock_no Description 245685 Item1 Description 958565 Item2 Description 在表2中,我有: Barcode Item_no 48002456854582 000245685 48003658458693 000958565 在我的查询中,我想将这两个表连接起来,stock\u no表1类似于表2的item\u no 是否有一种方法可以将表1的库存编号截断
Stock_no Description
245685 Item1 Description
958565 Item2 Description
在表2中,我有:
Barcode Item_no
48002456854582 000245685
48003658458693 000958565
在我的查询中,我想将这两个表连接起来,stock\u no
表1类似于表2的item\u no
是否有一种方法可以将表1的库存编号
截断为0,或删除表2的前导0
到目前为止,我所拥有的:
SELECT A.stock_no, B.barcode, A.description
FROM A.Table1
JOIN B.Table2 ON A.stock_no = B.item_no
由于表2中的项目编号
的前导000,上述查询将不起作用。您可以这样做,但如果存在索引,则不会使用索引:
SELECT *
FROM Table1 t1
JOIN Table2 t2 ON CAST(t1.stock_no AS INT) = CAST(t2.item_no AS INT)
您可以这样做,但如果存在索引,则不会使用索引:
SELECT *
FROM Table1 t1
JOIN Table2 t2 ON CAST(t1.stock_no AS INT) = CAST(t2.item_no AS INT)
您可以使用子字符串方法,如:
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”是项目的最大长度。\u无列您可以使用如下子字符串方法:
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”是项目编号列的最大长度cast(项目编号为int)cast(项目编号为int)