2012-11-15 41 views
2

我使用的是MSSQL EXPRESS 2008年,我試圖來連接記錄的ID列與它的使用下面的查詢串聯int和nvarchar列

SELECT CAST(GotoviProizvodi.ID as nvarchar(4)) + ' - ' + CAST(GotoviProizvodi.Opis as nvarchar(max)) AS Opis 
FROM GotoviProizvodi,Recept 
WHERE [email protected] 
    AND Recept.Proizvod=GotoviProizvodi.Opis 

GotoviProizvodi.ID is defined in the schema as int -- the ID column 
GotoviProizvodi.Opis is defined as nvarchar(200) -- the description column 

但說明列,當我嘗試執行它產生此查詢:

消息245,級別16,狀態1,過程GetProizvodByReceptId,第2行轉換 轉換nvarchar的值「測試」爲數據類型int時失敗。

爲什麼它試圖將它轉換爲int,當我明確地告訴它將其轉換爲nvarchar?任何解決方法?

+2

是什麼'Recept.Proizvod'的數據類型的連接? – Taryn

+0

「@ ID」的數據類型是什麼? – garyh

回答

4

您確定錯誤與演員相關而不是與哪裏的條件有關嗎? 檢查列類型匹配

+0

你是對的。它應該是Recept.Proizvod = GotoviProizvodi.ID。 –

1

我認爲這會做:

SELECT (CONVERT(NVARCHAR, GotoviProizvodi.ID) + ' - ' + GotoviProizvodi.Opis) AS Opis 
FROM GotoviProizvodi,Recept 
WHERE [email protected] 
    AND Recept.Proizvod=GotoviProizvodi.Opis