sql >> データベース >  >> RDS >> Oracle

行をコピーして列の小さなサブセットを変更しますか?

    注:この回答はSQLServer用です。 この回答の後にタグが質問に追加されました

    テーブルにIDENTITYがあると仮定します 優れた設計の原則によれば、主キーでもある列。また、そうではないと仮定しましょう。 計算された列(またはタイムスタンプまたはより多くの操作を必要とする任意のタイプ)があります。最後に、少なくともこのID列の名前を知っていると仮定しましょう。これは標準です。 "id "。

    次のシーケンスを使用できます:

    SELECT * INTO #tmp FROM tbl WHERE id = @copyfrom;
    ALTER TABLE #tmp DROP COLUMN id;
    UPDATE #tmp SET
       column1 = ...,
       column2 = ...,
       column3 = ...;  --- the subset of columns you want to change
    INSERT tbl SELECT * FROM #tmp;
    

    SQLフィドルデモ



    1. IServiceCollectionには、AddNpgsqlの定義または拡張機能が含まれていません

    2. ポータブルSQLアップサート(挿入+更新)ソリューションが必要

    3. PostgreSQLのフィールド順に基づいて2番目に高い値から最も低い値のレコードを取得する方法

    4. エンティティフレームワークを使用してストアドプロシージャを実行する