2017-11-26 7 views
0

テーブル内のすべてのDistinctの値を持つ新しい行を追加する必要があります(ResourceId)。SQL Server - 各列の値を列に追加します

これらのそれぞれについて、私はテーブルに行を追加する必要があります。行は

Id  ResourceId    Resourceset Value    LocaleId 
53591 AssessmentType_21  /Assessemnts Task Format  en 
53247 Attr_Description_1  /Description Concentration  en 
53378 Attr_Description_132 /Description Affirmation  en 

は、各ResourceIdに対して複数のLocaleId Sが存在することができ形式であるが、私は今までResourceIdごとに1つの行を挿入したいです。

私は挿入する必要が新しい行は、形式になっています。

  • ResourceId & Resourceset同じ

  • 値は常にResourcesetなりますとどまります。

  • LocaleIdResourceIdはいつも私が表に以下の3行を挿入するクエリを記述する必要があり、上記の例のためにmk

そうになります。 (例のためのIDだけ)

Id  ResourceId    Resourceset  Value        LocaleId 
60001 AssessmentType_21  /Assessemnts /Assessemnts.AssessmentType_21  mk 
60002 Attr_Description_1  /Description /Description.Attr_Description_1  mk 
60003 Attr_Description_132 /Description /Description.Attr_Description_132  mk 

これは明らかです - 説明するのが一番簡単ではありません。検索はしましたが、何も似ていませんでした。これについての助けに感謝します。

答えて

1

私が正しくunderststand場合:

insert into localizations (ResourceId, Resourceset, Value, LocaleId) 
    select distinct ResourceId, Resourceset, 
      '/' + Resourceset + '.' + ResourceId, 'mk' 
    from localizations; 

をこれはペアResourceId/Resourcesetが一意であることを前提としています。

これはまた、idが自動的に割り当てられていることを前提としています(つまり、identity列です)。

関連する問題