0

您好,我有这样的ID,LongID,Categoty,Priority列和示例数据表:

ID     LongID     Category  Priority
------------------------------------
218     2432     301        1
222     2445     301        2
205     2416     301        3
214     2425     302        1
  5     1079     302        2
152     2388     302        3
143     2382     303        1
 89     2263     303        2
126     2375     303        3

我正在构建一个重复功能,例如:如果我当前在类别 301 中并按重复,我将找到下一个可用的类别 ID(最大类别)+1,这意味着 304 并将所有行从类别 301 复制到 304

    ID     LongID     Category  Priority
    218     2432     301        1
    222     2445     301        2
    205     2416     301        3
    214     2425     302        1
    5       1079     302        2
    152     2388     302        3
    143     2382     303        1
    89      2263     303        2
    126     2375     303        3
    218     2432     304        1 <-new 304
    222     2445     304        2<-new 304
    205     2416     304        3<-new 304

我怎样才能做到这一点?

4

2 回答 2

3

您可以使用INSERT..SELECT语法轻松完成。

DECLARE @newCat INT
SELECT @newCat = COALESCE(MAX(Category),0)+1 FROM YourTable

INSERT INTO YourTable (ID, LongID, Category, Priority)
SELECT ID, LongID, @newCat, Priority
FROM YourTable WHERE Category = 301
于 2013-08-07T09:13:03.810 回答
0
INSERT INTO YourTable (ID, LongID, Category, Priority)
SELECT ID, LongID, @newCat, Priority
FROM YourTable WHERE Category = your_id
于 2013-08-07T09:22:18.830 回答