我有一个名为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时,转换失败。
任何人都可以帮我解决这个问题吗?
答案 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