Sql 用现有数据对新数据进行分区
我正在尝试更新已添加到表中的新记录的索引字段。有些记录已经有索引,如何用下一个值序列更新新记录Sql 用现有数据对新数据进行分区,sql,sql-server,Sql,Sql Server,我正在尝试更新已添加到表中的新记录的索引字段。有些记录已经有索引,如何用下一个值序列更新新记录 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
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
感谢您的帮助。她的一个方法是联合:
约格什:谢谢你的主意。从来没有想过工会 这起作用了
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
使用UPDATE函数。我将停止手动执行此操作,并将属性应用于索引字段。我希望有一种方法可以在上面的评论中给@scsimon更多类似的东西。这个过程是精神错乱的人格化。这是一种竞争条件,极易发生错误和/或冲突。抱歉,已使用标识列,更新将不起作用。我正在尝试更新组上的索引你是什么意思?下面是一个你需要做的例子。
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
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