SQL Server サブクエリを使ったInsert

INSERT INTO TABLE (CLM1,CLM2,CLM3 )SELECT CLM1,CLM2,CLM3 FROM TEMPTABLE WHERE CLM1 = CLM4;

カラムの数は合わせる必要がある。

テーブル作成時にInsert

CREATE TEMPORARY TABLE temp_table AS (
  SELECT CLM1,CLM2 FROM users
  INNER JOIN 
 mstr ON users.code = mstr.code
  WHERE mstr.code = 'mstr'
  ORDER BY mstr.mseq -- ソート順を指定
);

番号を順番に振ってアップデート

すでにあるテーブルのデータのとあるカラムに上から順番に番号を振りたいとき

まず順番に番号を振ったテーブルを作る

このとき、アップデートしたいテーブルの何か一意のデータが必要。

CREATE  TABLE temp_table (
  number decimal, 
  mseq INTEGER -- mseq列のデータ型に合わせて定義
);

方法はいろいろあるが、numberカラムにidentityをつける。

テーブルを右クリック、IDENTITY設定を「はい」にする。

次に、データをインサートする。

 INSERT INTO temp_table (mseq) SELECT seq FROM DATATABLE order by seq

これでnumberには順番に番号が入り、mseqにはデータが入ったので、これをもとにアップデートする

UPDATE DATATABLE SET DATATABLE.seq = temp_table.number FROM temp_table WHERE DATATABLE.seq = temp_table.mseq

これで、順番に数字を付けてアップデートできた。