我试图在标量函数中对两个变量的内容求和,我想在字符串中使用此计算的结果。但是,脚本不会返回表中的值10。我做错了什么?
Alter FUNCTION [dbo].[_KOptionsPounds] ()
RETURNS nvarchar(max)
AS
BEGIN
Declare @test int=5
Declare @test2 int=5
Declare @output nvarchar(max)
Declare @testcalc int
select @testcalc = @test + @test2
set @output='<table><tr><td>£'+@testcalc+'</td></tr></table>'
RETURN @output
END
答案 0 :(得分:1)
将一行替换为:
set @output='<table><tr><td>£'+convert(nvarchar(10), @testcalc)+'</td></tr></table>'
答案 1 :(得分:0)
假设SQL Server(基于语法) - 您应该收到错误 -
将varchar值“
<table><tr><td>£
”转换为数据类型int时转换失败。
那是因为当你尝试将int连接到字符串时,SQL服务器将尝试将字符串隐式转换为int并将其添加到另一个int。
您需要将int值转换为字符串:
set @output='<table><tr><td>£' + CAST(@testcalc as nvarchar(11)) + '</td></tr></table>'4