2011-08-17 23 views
6

Tôi có một bảng gọi là Field_Data và các dữ liệu trong bảng trông giống như:cột concatenating Int

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 

tôi đang cố gắng để có được đầu ra như:

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 

tôi đã cố gắng làm một cái gì đó như thế này:

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

Nhưng nó đã cho tôi lỗi sau:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value '_' to data type int.

Có ai có thể giúp tôi về cách thực hiện việc này không?

Trả lời

20

Bạn cần phải cast INT lĩnh vực như varchar:

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

Đánh bại tôi sau 11 giây! –

+1

@Abe - bạn thắng vòng trước, vì vậy bây giờ chúng tôi bị ràng buộc tôi đoán. – JNK

+2

Vui lòng không sử dụng varchar mà không có chiều dài. http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx –

2

Heads cho bất kỳ khách tham quan trang mới, trong SQL Server 12+, có một CONCAT chức năng có sẵn.

SELECT CONCAT([Date], [TrackId], '_', [ItemNumber]) AS FinalId 
FROM FieldData 
Các vấn đề liên quan