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))
有些值是什么样的? – BigBlack
@BigBlack:合并的一些非空值 – TheGameiswar