我有两个变量:
一个是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/