我有一个查询,以将值从一个表插入到另一个表,如下所示。

 INSERT into Workflow_CustomFormColumns
    (CustomFormId
     ,ColumnNumber
     ,ColumnTitle
     ,ColumnType
     ,ColumnListValues
     ,IsRequired,ColumnWidth
     ,Calculation)
 SELECT ColumnNumber
    ,ColumnTitle
    ,ColumnType
    ,ColumnListValues
    ,IsRequired
    ,ColumnWidth
    ,Calculation
 FROM Workflow_CustomFormTypeColumns
 WHERE CustomFormTypeId=66
    and ColumnNumber>43

现在,对于CustomformID中的WorkFlow_CustomformColumns,我需要添加从250增至300的值

最佳答案

您可以使用row_number()中的insert来做到这一点:

INSERT into Workflow_CustomFormColumns(CustomFormId, ColumnNumber, ColumnTitle,
              ColumnType, ColumnListValues, IsRequired, ColumnWidth, Calculation
             )
    SELECT 249 + row_number() over (order by (select NULL)) as CustomerFormId,
          ColumnNumber, ColumnTitle, ColumnType, ColumnListValues, IsRequired,
          ColumnWidth, Calculation
    from  Workflow_CustomFormTypeColumns
    where CustomFormTypeId = 66 and ColumnNumber > 43;

但是,对于我来说,很难想到您真正想要这个的情况。取而代之的是,您通常会创建CustomerFormIdidentity列,并让数据库为ID分配唯一的数字。

关于sql - 在SQL INSERT SELECT查询中添加增量数字序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23217714/

10-11 02:02