[sql] SQL에서 같은 줄에 정수 변수와 문자열 인쇄

Ok 그래서 Technet에서 이것에 대한 답을 검색했지만 아무 소용이 없습니다.

두 개의 String 변수와 연결된 정수 변수를 인쇄하고 싶습니다.

이것은 실행되지 않는 내 코드입니다.

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

이런 기본적인 기능인 것 같아서 T-SQL에서는 불가능하다고 상상할 수 없었습니다. 하지만 가능하지 않다면 그렇게 말 해주세요. 정답을 찾을 수없는 것 같습니다.



답변

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 */


답변

숫자는 문자열 보다 우선 순위 으므로 +연산자는 추가하기 전에 문자열을 숫자로 변환하려고합니다.

다음과 같이 할 수 있습니다.

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


답변

문자열과 숫자 문자열을 결합 할 수 없습니다. 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'


답변

인쇄 할 정수 및 10 진수 값을 설정하고 초기 값 을 설정했는지 다시 확인하십시오 .

이 샘플은 빈 줄을 인쇄합니다.

declare @Number INT
print 'The number is : ' + CONVERT(VARCHAR, @Number)

이 샘플은 인쇄 중입니다.-> 숫자는 다음과 같습니다. 1

declare @Number INT = 1
print 'The number is : ' + CONVERT(VARCHAR, @Number)


답변

이것을 시도해 볼 수 있습니다.

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


답변