在SQL中的同一行上打印整数变量和字符串

时间:2014-05-09 13:24:48

标签: sql sql-server tsql

好的,所以我在Technet上搜索了这个答案,但没有用。

我只想打印一个与两个String变量连接的整数变量。

这是我的代码,不运行:

print 'There are ' + @Number + ' alias combinations did not match a record'

这似乎是一个基本功能,我无法想象它在T-SQL中是不可能的。但如果不可能,请说出来。我似乎找不到直接的答案。

5 个答案:

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