Sql 将最后一行更新为第一行值
我有下表格式Sql 将最后一行更新为第一行值,sql,sql-server,Sql,Sql Server,我有下表格式 SeqID Control_ID Data_Value RowNum 1 SEARCH SEARCH 3 1 BROKERREF BZ815 4 1 SYSTEM 0 5 2 pdp pdp 1 2 test 123 2 2 system 235
SeqID Control_ID Data_Value RowNum
1 SEARCH SEARCH 3
1 BROKERREF BZ815 4
1 SYSTEM 0 5
2 pdp pdp 1
2 test 123 2
2 system 235 3
SeqID Control_ID Data_Value RowNum
1 BROKERREF BZ815 4
1 SYSTEM 0 5
1 SEARCH SEARCH 3
2 test 123 2
2 system 235 3
2 pdp pdp 1
我想将表格更新为以下格式
SeqID Control_ID Data_Value RowNum
1 SEARCH SEARCH 3
1 BROKERREF BZ815 4
1 SYSTEM 0 5
2 pdp pdp 1
2 test 123 2
2 system 235 3
SeqID Control_ID Data_Value RowNum
1 BROKERREF BZ815 4
1 SYSTEM 0 5
1 SEARCH SEARCH 3
2 test 123 2
2 system 235 3
2 pdp pdp 1
我需要选择顶行作为每组序列ID的最后一行
注意:对于需要选择作为每个唯一sequenceID最后一行的行,Control_Id和DataValue列名将是相同的
提前感谢。根据SeqID使用行号定位第一行。然后,在外部查询中,使用ORDERBY子句中的CASE表达式将此行放在最后一行
在其分区内的位置:
SELECT SeqID, Control_ID, Data_Value, RowNum
FROM (
SELECT SeqID, Control_ID, Data_Value, RowNum,
ROW_NUMBER() OVER (PARTITION BY SeqID ORDER BY RowNum) AS rn
FROM mytable ) t
ORDER BY SeqID,
CASE WHEN t.rn = 1 THEN 1 ELSE 0 END,
RowNum
在更新后的表中,除了排序之外,还有什么变化?以及为什么要更新表;。