在SQL Server中使用right()函数

问题描述 投票:0回答:1

我正在尝试获取日期(例如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;

结果是不同的。可能是什么原因?

sql-server sql-server-2005
1个回答
0
投票

您需要声明一个长度为例如的varchar

DECLARE @num varchar(5); 
© www.soinside.com 2019 - 2024. All rights reserved.