Kyl*_*ard 3 sql sql-server-2005
我有一个表格,其中有一个标有'sortorder'的列,用于允许客户手动更改每个项目的顺序.该表还有一个标记为"CategoryId"的列.
我很好奇,如果我批量导入一组数据,其中我知道所有数据,包括CategoryId,我如何在查询中指定'SortOrder'的实施值,以便它在每个独特的CategoryId中从1变为X .
感谢大家.
我不确定我理解你的问题,但我认为你所问的是如何在插入表格期间合成一个合适的SortOrder.您应该使用ROW_NUMBER()和CategoryId进行分区.当然,您需要定义一个排序标准,该标准给出"1到X"的属性顺序:
INSERT INTO myTable (SortOrder, CategoryId, <other columns> ...)
SELECT ROW_NUMBER() OVER (PARTITION BY CategoryId ORDER BY mySortCriteria)
, CategoryId
, <other columns> ...
FROM SourceTable;
Run Code Online (Sandbox Code Playgroud)