好的,我已经在 Technet 上搜索了这个问题的答案,但是没有结果。
我只想打印一个由两个 String 变量连接起来的整数变量。
这是我的代码,不能运行:
print 'There are ' + @Number + ' alias combinations did not match a record'
它看起来像是一个基本的特性,我无法想象它在 T-SQL 中是不可能的。但如果不可能,就直说吧。我似乎找不到一个直接的答案。
Numbers have higher precedence than strings so of course the + operators want to convert your strings into numbers before adding.
+
You could do:
print 'There are ' + CONVERT(varchar(10),@Number) + ' alias combinations did not match a record'
or use the (rather limited) formatting facilities of RAISERROR:
RAISERROR
RAISERROR('There are %i alias combinations did not match a record',10,1,@Number) WITH NOWAIT
declare @x INT = 1 /* Declares an integer variable named "x" with the value of 1 */ PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record' /* Prints a string concatenated with x casted as a varchar */
You may try this one,
declare @Number INT = 5 print 'There are ' + CONVERT(VARCHAR, @Number) + ' alias combinations did not match a record'
You can't combine a character string and numeric string. You need to convert the number to a string using either CONVERT or CAST.
For example:
print 'There are ' + cast(@Number as varchar) + ' alias combinations did not match a record'
or
print 'There are ' + convert(varchar,@Number) + ' alias combinations did not match a record'
Double check if you have set and initial value for int and decimal values to be printed.
This sample is printing an empty line
declare @Number INT print 'The number is : ' + CONVERT(VARCHAR, @Number)
And this sample is printing -> The number is : 1
declare @Number INT = 1 print 'The number is : ' + CONVERT(VARCHAR, @Number)
如果不想手动转换类型,可以使用CONCAT-function。
CONCAT
PRINT CONCAT('There are ', @Number, ' alias combinations did not match a record')