我有两个变量:

一个是varchar,另一个是int,我不确定如何使用强制转换编写while循环,以便显示以下内容:例如,如果while循环为5,则结果应为
仪表1
仪表2
仪表3
仪表4
仪表5。

我有这段代码,但是即使我执行强制转换,它也无法运行(无法将varchar转换为int)。

DECLARE @Name varchar (20) = 'Meter',
        @MeterNumber int = 1

WHILE (@MeterNumber < 5)
BEGIN
PRINT @Name + ' ' + @MeterNumber
SET  @MeterNumber = @MeterNumber + 1
END

最佳答案

这应该可以解决问题:在打印时将MeterNumber强制转换为varchar。

DECLARE @Name varchar (20) = 'Meter',
        @MeterNumber int = 1

WHILE (@MeterNumber <= 5)
BEGIN
PRINT @Name + ' ' + cast(@MeterNumber as varchar(20))
SET  @MeterNumber = @MeterNumber + 1
END

编辑:


DECLARE @Name varchar (20) = 'Meter',
        @MeterNumber int = 1 ,
        @OutPut varchar(max) =''; -- this can get biiiig.

WHILE (@MeterNumber <= 5)
BEGIN
SET @Output = @Output + @Name + ' ' + cast(@MeterNumber as varchar(20)) + ','
PRINT LEFT(@Output, len(@Output) - 1)
SET  @MeterNumber = @MeterNumber + 1
END

关于SQL Server串联varchar和int,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17892185/

10-10 06:10