codememo

SQL에서 동일한 줄에 정수 변수 및 문자열 인쇄

tipmemo 2023. 5. 8. 22:16
반응형

SQL에서 동일한 줄에 정수 변수 및 문자열 인쇄

알겠습니다. 그래서 테크넷에서 이에 대한 답을 찾아봤지만, 소용이 없었습니다.

두 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('There are %i alias combinations did not match a record',10,1,@Number)
WITH NOWAIT

수동으로 유형을 캐스트하지 않으려면 -function을 사용하면 됩니다.

PRINT CONCAT('There are ', @Number, ' alias combinations did not match a record')

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

인쇄할 int 및 decimal 값의 설정 및 초기값이 있는지 확인합니다.

이 샘플은 빈 줄을 인쇄하고 있습니다.

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'

언급URL : https://stackoverflow.com/questions/23565790/printing-integer-variable-and-string-on-same-line-in-sql

반응형