[英]Insert values for column based on values of separate column (C#)
我的桌子目前看起来像这样
ID NAMESITE SENSORTYPE ____(columns between) SENSORNUMBER(initialized to all null)
---------------------------------------------------------------
SW02 random null--
SW02 camera null--
SW02 random null
SW02 camera null
NW02 RANDOm null
NW02 camera null
NW02 random null
NW02 camera null
NW02 camera null
基本上我想做的是,如果与传感器类型='camera'接触时增加传感器编号,并且如果与2个相同的ID接触,则应该在同一行中输入传感器编号的增量值但是,所有不是摄像机的ID传感器类型都可以保留为空
示例输出应如下所示
ID NAMESITE SENSORTYPE ____(columns between) SENSORNUMBER(initialized entire Column NULL)
-----------------------------------------------------------------------
SW02 random null--
SW02 camera 1
SW02 random null
SW02 camera 2
NW02 RANDOm null
NW02 camera 1
NW02 random null
NW02 camera 2
NW02 camera 3
我不确定如何使用C#或不使用C#来完成此操作,也不确定如何处理此问题,我想我需要不断提供帮助吗?
请注意,我要修改现有表而不创建新表(第一个是我的初始表的样子)
如果SENSORTYPE ='Camera'大于一个相同ID中的一个,则应递增。
我认为您可以通过update
和CTE做到这一点:
with toupdate as (
select t.*, row_number() over (partition by id order by id) as seqnum
from t
where sensortype = 'Camera'
)
update toupdate
set sensornumber = seqnum;
注意:每个id
传感器编号都在增加。 但是没有(显而易见的)列来对值进行排序。 如果您有这样的一列,那么order by
应使用该列。 否则,这些值将是连续的但可以任意排序。
为了获得从1(NOT ARBITRARLY)开始的SENSOR编号的顺序实现,我刚刚创建了另一个名为rownum的行,该行跟踪row#(1-endrow)并使用该顺序,因此它不使用任意数字。 -如果有人在想!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.