2012-08-03 39 views
0

我正在處理SQL Server數據庫,其中db1.dbo.batches.id存儲爲1234,但db2.dbo.activity.batch_id存儲爲B1234向內部連接語句添加字符

我想加入的兩個表,這樣的事情...

SELECT column1, column2 
FROM db1.dbo.batches AS b 
INNER JOIN db2.dbo.activity AS a 
ON ('B' + b.id) = a.batch_id 

的問題是('B' + b.id)。我試過CONCAT('B' + b.id),CAST('B' + b.id)CONVERT(varchar(10),'B' + b.id)這些都沒有奏效。

我可以運行第二個選擇查詢,但我希望有更優雅的東西。

任何想法?乾杯!

回答

1

嘗試把 'B' 轉換功能之外:

SELECT column1, column2 
FROM db1.dbo.batches AS b 
INNER JOIN db2.dbo.activity AS a 
ON 'B' + CONVERT(varchar(10), b.id) = a.batch_id 
+0

這工作感謝隊友!所以問題是id被存儲爲int,所以我不能簡單地將它加到'B'。 – Gregology 2012-08-03 01:13:21

+1

正確,這就是爲什麼它不會讓你連接CAST/CONVERT函數內的值......它試圖在轉換之前連接它們,這會導致異常。 – 2012-08-03 01:27:24