我正在尝试获取日期(例如000,001 ... 999..n),当我使用while循环中的right()函数进行选择时,它可以正常工作。如果我将其分配给变量,结果将不同..
DECLARE @cnt_chr INT = 1;
DECLARE @cnt_num INT = 1;
DECLARE @num varchar;
DECLARE @chr varchar;
DECLARE @full varchar;
WHILE @cnt_num <= 999
BEGIN
select RIGHT(CONCAT('000', CONVERT(varchar, @cnt_num)), 3);
SET @cnt_num = @cnt_num + 1;
END;
如果我写完之后就这样写:
@num = RIGHT(CONCAT('000', CONVERT(varchar, @cnt_num)), 3);
SET @cnt_num = @cnt_num + 1;
print @num;
结果是不同的。可能是什么原因?
DECLARE @num varchar(5);您需要声明一个具有长度的varchar。 –杰里米1小时前