标量函数计算

时间:2017-08-21 11:03:51

标签: tsql

我试图在标量函数中对两个变量的内容求和,我想在字符串中使用此计算的结果。但是,脚本不会返回表中的值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

2 个答案:

答案 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