2013-09-24 2 views
0

я есть значение, как этот «00100-01999» мне нужно, чтобы увеличить этот как «00100,00101, 01999 ......»Как приращение значения от

я написал сценарий, как этот

DECLARE @vc_value VARCHAR(20), 
    @min VARCHAR(10), 
    @Max VARCHAR(10), 
    @String VARCHAR(10), 
    @Start BIGINT, 
    @End BIGINT 
CREATE TABLE #1 (ID VARCHAR(20)) 
SET @vc_value = '00100-01999' 

SET @min = SUBSTRING(@vc_value, 1, CHARINDEX('-', @vc_value) - 1) 

SET @Max = SUBSTRING(@vc_value, CHARINDEX('-', @vc_value) + 1, LEN(@vc_value)) 
SELECT @min,@max 

WHILE CAST(@min AS INT) <= CAST(@Max AS INT) 
BEGIN 

    INSERT INTO #1 
    SELECT CAST(@min AS VARCHAR(10)) 
    SET @min = @min + 1 

    SELECT @min 
END 

SELECT * FROM #1 

, но я получаю результат, 100,101, .... 1999

мне нужно получить как '00100,00101, 01999 ......'

ответ

0

Вы должны добавить необходимое количество начальных нулей. Попробуйте это:

WHILE CAST(@min AS INT) <= CAST(@Max AS INT) 
BEGIN 

    INSERT INTO #1 
    SELECT RIGHT('00000'+ CAST(@min AS VARCHAR(10)),5) 
    SET @min = @min + 1 

    SELECT @min 
END 

Это добавит '00000' к 100,101, .... 1999, что дает вам '00000100' в виде строки, то он берет последние 5 символов из этой строки.

+0

Да, я реализовал этот код, но ему нужно изменить в инструкции WHILE, необходимо удалить литье – mohan111

Смежные вопросы