删除连接中的前导零

use*_*603 1 sql sql-server casting

表格是:

Table A: tag_num (nvarchar(6))       Table B: tag_num (nvarchar(6))
------------------------------       ------------------------------
883                                  00883
Run Code Online (Sandbox Code Playgroud)

查询:

select * from A test1 
inner join B test2 on test2.tag_num = test1.tag_num
Run Code Online (Sandbox Code Playgroud)

由于表中的前导零而返回0行B.

我该如何返回结果

A.tag_num | B.tag_num
883       | 00883
Run Code Online (Sandbox Code Playgroud)

即使表B列包含前导零.

我应该使用哪种数据类型?

jue*_*n d 9

您可以将列转换为 int

select * 
from A test1 
inner join B test2 
      on cast(test2.tag_num as int) = cast(test1.tag_num as int)
Run Code Online (Sandbox Code Playgroud)

或者最好int在表格中更好地用作数据类型.