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」のように取得する必要があります

4

1 に答える 1

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 文字が取得されます。

于 2013-09-24T06:48:46.877 に答える