Подтвердить что ты не робот

Печать целочисленной переменной и строки в одной строке в SQL

Хорошо, поэтому я искал ответ на это на Technet, но безуспешно.

Я просто хочу напечатать целочисленную переменную, объединенную с двумя переменными String.

Это мой код, который не запускается:

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

Кажется, что такая базовая функция, я не мог себе представить, что это невозможно в T-SQL. Но если это невозможно, просто скажите это. Кажется, я не могу найти прямой ответ.

4b9b3361

Ответ 1

declare @x INT = 1 

PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record'

Ответ 2

Числа более высокий приоритет, чем строки, поэтому, конечно, операторы + хотят преобразовать ваши строки в числа перед добавлением.

Вы можете сделать:

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

Ответ 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'

Ответ 4

Вы можете попробовать это,

declare @Number INT = 5                            
print 'There are ' + CONVERT(VARCHAR, @Number) + ' alias combinations did not match a record'