1

というテーブルがありますAAA。でテーブルを注文するAAAと、値「BINXXXXX」が必要な があり、「BINXXXXX」は毎回 1 ずつ上げる必要がありますCOLUMNICOLUMNJたとえば、「BIN00001」、「BIN00002」など...最後まで。で注文するときにこれを行う必要がありますCOLUMNI

これを行う良い方法はありますか?

4

2 に答える 2

3
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コメントするのに十分な担当者がまだいないので、これが答えになります。

于 2013-09-19T20:07:38.563 に答える
1
SELECT COLUMNI, 
       COLUMNJ = 
'BIN' + RIGHT('0000'+ CONVERT(VARCHAR(20),ROW_NUMBER()OVER(ORDER BY COLUMNI ASC)),5) 
FROM dbo.AAA

Demo

この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

Demo

于 2013-09-19T19:44:50.877 に答える