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

69 sql t-sql sql-server

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

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

这是我的代码,不运行:

print 'There are ' + @Number + ' alias combinations did not match a record'
Run Code Online (Sandbox Code Playgroud)

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

moh*_*111 116

declare @x INT = 1 

PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record'
Run Code Online (Sandbox Code Playgroud)


Thi*_*ijs 15

如果您不想手动转换类型,可以使用 -CONCAT函数

PRINT CONCAT('There are ', @Number, ' alias combinations did not match a record')
Run Code Online (Sandbox Code Playgroud)


Dam*_*ver 7

数字的优先级高于字符串,因此+运算符当然希望在添加之前将字符串转换为数字.

你可以这样做:

print 'There are ' + CONVERT(varchar(10),@Number) +
      ' alias combinations did not match a record'
Run Code Online (Sandbox Code Playgroud)

或使用(相当有限的)格式化设施RAISERROR:

RAISERROR('There are %i alias combinations did not match a record',10,1,@Number)
WITH NOWAIT
Run Code Online (Sandbox Code Playgroud)