2017-10-31 14 views
0

テーブルに追加された新しいレコードのインデックスフィールドを更新しようとしています。レコードの中にはすでにインデックスがあります。次の値のシーケンスで新しいレコードを更新するにはどうすればよいですか?新しいデータを既存のデータに分割する

Sample data: 
    Index INCIDENT_DT Incident_type Event  CITY   COUNTRY 
    1  1/2/16 0:00 Accident  Truck  Boston   NULL 
    2  1/2/16 0:00 Accident  Car   Boston   NULL 
    3  1/2/16 0:00 Accident  Ground  Sutton   USA 
      1/2/16 0:00 Accident  NULL  NULL   NULL 
      1/2/16 0:00 Accident  NULL  Chicago   NULL 

SELECT ROW_NUMBER() OVER (partition BY INCIDENT_DT order by INCIDENT_DT) AS Index, INCIDENT_DT 
FROM (select distinct INCIDENT_DT, Incident_type, [event], INCIDENT_CITY, INCIDENT_COUNTRY from input) r 

ありがとうございました。

+1

「UPDATE」機能を使用してください。 –

+1

これを手動でやめ、[identity](https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql-identity-property)プロパティを適用しますIndexフィールドに追加します。 – scsimon

+1

私は、@scsimonに上記のコメントのようなものを与える方法があることを望みます。このプロセスは狂った人格です。これは競合状態であり、エラーや衝突の可能性が非常に高いです。 –

答えて

1

ハーズ一つのアプローチUNIONです:

SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) [Index],* FROM 
(
    SELECT INCIDENT_DT, Incident_type, [Event], CITY , COUNTRY FROM <table_name> 
    UNION ALL 
    SELECT '1/2/16 0:00' [INCIDENT_DT], 'Accident' [Incident_type], NULL [Event], NULL CITY, NULL COUNTRY 
    UNION ALL 
    SELECT '1/2/16 0:00' [INCIDENT_DT], 'Accident' [Incident_type], NULL [Event], 'Chicago' CITY, NULL COUNTRY 
) A 

結果:アイデア

Index INCIDENT_DT Incident_type Event CITY COUNTRY 
1  1/2/16 0:00 Accident  Truck Boston NULL 
2  1/2/16 0:00 Accident  Car  Boston NULL 
3  1/2/16 0:00 Accident  Ground Sutton USA 
4  1/2/16 0:00 Accident  NULL NULL NULL 
5  1/2/16 0:00 Accident  NULL Chicago NULL 
0

ヨーゲッシュのおかげ。組合については決して考えなかったでしょう。

これは機能しました。

SELECT ROW_NUMBER() OVER (partition BY INCIDENT_DT order by grp, index, INCIDENT_DT) AS grp, index, INCIDENT_DT 
FROM (select distinct 1 as grp, index, INCIDENT_DT, Incident_type, [event], INCIDENT_CITY, INCIDENT_COUNTRY from input where index is not null 
union 
select distinct 2 as grp, index, INCIDENT_DT, Incident_type, [event], INCIDENT_CITY, INCIDENT_COUNTRY from input where index is null 
) r 
関連する問題