というテーブルがありますAAA
。でテーブルを注文するAAA
と、値「BINXXXXX」が必要な があり、「BINXXXXX」は毎回 1 ずつ上げる必要がありますCOLUMNI
。COLUMNJ
たとえば、「BIN00001」、「BIN00002」など...最後まで。で注文するときにこれを行う必要がありますCOLUMNI
。
これを行う良い方法はありますか?
というテーブルがありますAAA
。でテーブルを注文するAAA
と、値「BINXXXXX」が必要な があり、「BINXXXXX」は毎回 1 ずつ上げる必要がありますCOLUMNI
。COLUMNJ
たとえば、「BIN00001」、「BIN00002」など...最後まで。で注文するときにこれを行う必要がありますCOLUMNI
。
これを行う良い方法はありますか?
UPDATE a
SET a.COLUMNJ = b.COLUMNJ
FROM dbo.AAA a
INNER JOIN
(SELECT COLUMNI,
COLUMNJ =
'BIN' + RIGHT('0000'+ CONVERT(VARCHAR(8),ROW_NUMBER()OVER(ORDER BY COLUMNI ASC)),5)
FROM dbo.AAA)b
ON b.COLUMNI = a.COLUMNI
上記のTimの作業から借用すると、これによりテーブルが正しい値で更新されます。もちろん、COLUMNI がユニークであると仮定します。
PSコメントするのに十分な担当者がまだいないので、これが答えになります。
SELECT COLUMNI,
COLUMNJ =
'BIN' + RIGHT('0000'+ CONVERT(VARCHAR(20),ROW_NUMBER()OVER(ORDER BY COLUMNI ASC)),5)
FROM dbo.AAA
このUPDATE
部分は明確ではありませんが、CTE を使用した例を次に示します。
WITH CTE AS (
SELECT AAA.*,
BIN_Num = 'BIN'
+ RIGHT('0000'+ CONVERT(VARCHAR(20), ROW_NUMBER() OVER (
ORDER BY COLUMNI ASC)), 5)
FROM dbo.AAA)
UPDATE CTE SET COLUMNJ = BIN_Num