SQL Server 2005:帮助连接Nvarchar和Int

问题描述:

由于我在Nvarchar内部使用了Int变量,因此我有这段代码出错。如果我使用SQL Server 2005:帮助连接Nvarchar和Int

CAST(CAST(COALESCE(@FattAnnoCorrente) as int) as varchar(255)) 

我,而不是让这些错误

Conversion failed when converting the nvarchar value 'ANNO 2016 -' to data type int.

Msg 102, Level 15, State 1, Line 154
Incorrect syntax near ')'.
Msg 156, Level 15, State 1, Line 173
Incorrect syntax near the keyword 'FOR'.

你能帮我解决这个问题

DECLARE @FattAnnoCorrente INT; 
DECLARE @Tabscontianno1 NVARCHAR(MAX); 

SET @Tabscontianno1 = 
N'<p align="left"><b>ANNO ' + @Anno1 + ' - </b><b>' + @FattAnnoCorrente + '<br> 
    </b></p> 
<table height="62" border="1" cellpadding="2" cellspacing="2" 
    width="501"> 
    <tbody> 
    <tr> 
     <td valign="top">FATTURATO<br> 
     </td> 
     <td valign="top">SCONTO<br> 
     </td> 
    </tr>' + CAST ((
        SELECT 
        td = SUM(TOTNETTORIGA), '', 
        td = SCONTIESTESI 
        FROM .dbo.TESTEDOCUMENTI 
        INNER JOIN .dbo.RIGHEDOCUMENTI 
        ON PROGRESSIVO=IDTESTA AND TOTNETTORIGA <>'0' 
        WHERE CODCLIFOR = @CodiceCliente AND .dbo.TESTEDOCUMENTI.DOCCHIUSO = '0' AND .dbo.TESTEDOCUMENTI.BLOCCATO = '0' AND .dbo.TESTEDOCUMENTI.TIPODOC = 'FVC' AND .dbo.TESTEDOCUMENTI.ESERCIZIO = YEAR(GETDATE()) 
        GROUP BY TESTEDOCUMENTI.ESERCIZIO,SCONTIESTESI 
    FOR XML PATH('tr'), TYPE) 
    AS NVARCHAR(MAX)) + 
    N' </tbody> 
</table>'+ 
    N'<BR/>' ; 

我得到这个错误。

插入后,它在nvarchar可变我需要把它格式化为钱这样的:

'€ ' + REPLACE(CONVERT(varchar, CAST(@FattAnnoCorrente AS money), 105),',','.') 

谢谢你们!

你需要转换所有INT类型VARCHAR ..

你的情况,你是第一投射他们INT ..下面的语句

变化

CAST(CAST(COALESCE(@FattAnnoCorrente) as int) as varchar(255)) 

cast(COALESCE(@FattAnnoCorrente,'somevalue') as varchar(255)) 
+0

有些值是什么样的? – BigBlack

+0

@BigBlack:合并的一些非空值 – TheGameiswar