繁体   English   中英

根据单独的列(C#)的值插入列的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM