连接Int列

时间:2011-08-17 16:26:03

标签: sql sql-server sql-server-2005 tsql sql-server-2008

我有一个名为Field_Data的表,表中的数据如下所示:

Date                          Track_ID          Item#
2011-02-25 00:00:00.000       70212             1
2011-02-25 00:00:00.000       70212             2
2011-03-09 00:00:00.000       70852             1
2011-03-09 00:00:00.000       70852             3

我想把输出作为:

Date                          Final_ID
2011-02-25 00:00:00.000       70212_1
2011-02-25 00:00:00.000       70212_2
2011-03-09 00:00:00.000       70852_1
2011-03-09 00:00:00.000       70852_3

我尝试过这样的事情:

Select Date,Track_ID + '_' + Item# AS Final_ID
From Field_Data

但它给了我以下错误:

  

Msg 245,Level 16,State 1,Line 1
  将varchar值'_'转换为数据类型int时,转换失败。

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:21)

您需要将INT字段转换为varchar

Select Date,CAST(Trakc_ID as varchar(20)) + '_' + CAST(Item# as varchar(20)) as Final_ID
From Field_Data

答案 1 :(得分:4)

对于任何新的页面访问者,在SQL Server 12+中,可以使用CONCAT函数。

SELECT CONCAT([Date], [TrackId], '_', [ItemNumber]) AS FinalId
FROM FieldData