好的,所以我在Technet上搜索了这个答案,但没有用。
我只想打印一个与两个String变量连接的整数变量。
这是我的代码,不运行:
print 'There are ' + @Number + ' alias combinations did not match a record'
这似乎是一个基本功能,我无法想象它在T-SQL中是不可能的。但如果不可能,请说出来。我似乎找不到直接的答案。
答案 0 :(得分:100)
declare @x INT = 1
PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record'
答案 1 :(得分:5)
数字有higher precedence而不是字符串,所以+
运算符当然希望在添加之前将字符串转换为数字。
你可以这样做:
print 'There are ' + CONVERT(varchar(10),@Number) +
' alias combinations did not match a record'
或使用RAISERROR
的<(有限)格式设施:
RAISERROR('There are %i alias combinations did not match a record',10,1,@Number)
WITH NOWAIT
答案 2 :(得分:3)
您无法合并字符串和数字字符串。您需要使用CONVERT或CAST将数字转换为字符串。
例如:
print 'There are ' + cast(@Number as varchar) + ' alias combinations did not match a record'
或
print 'There are ' + convert(varchar,@Number) + ' alias combinations did not match a record'
答案 3 :(得分:1)
仔细检查是否已设置并且初始值表示要打印的int和decimal值。
此示例正在打印一个空行
declare @Number INT
print 'The number is : ' + CONVERT(VARCHAR, @Number)
此样本正在打印 - &gt;数字是:1
declare @Number INT = 1
print 'The number is : ' + CONVERT(VARCHAR, @Number)
答案 4 :(得分:0)
你可以尝试这个,
declare @Number INT = 5
print 'There are ' + CONVERT(VARCHAR, @Number) + ' alias combinations did not match a record'