如何为每个ID创建一个标识

是否有可能在sql 2000中创建一个组合键

code    id
abc      1
abc      2
abc      3
def      1
def      2
ghi      1

id在每次更改代码时重新开始计数。 我需要的编号与创建表或其他SELECT语句的技巧完全相同。

如何在sql server 2000中做到这一点

需要查询帮助


这里有一种方法可以在运行时检索这些数据,而不必将其实际存储在表中,这对于尝试和维护来说非常麻烦。 我在这里使用#temp表,但是你可以假装#a是你的永久表。 如此,这将支持多达256个副本。 如果你需要更多,它可以调整。

CREATE TABLE #a(code VARCHAR(32));

INSERT #a SELECT 'abc'
UNION ALL SELECT 'abc'
UNION ALL SELECT 'abc'
UNION ALL SELECT 'def'
UNION ALL SELECT 'def'
UNION ALL SELECT 'ghi';
GO

SELECT x.code, id = y.number FROM 
(
  SELECT code, maxid = COUNT(*) FROM #a GROUP BY code
) AS x
CROSS JOIN 
(
  SELECT DISTINCT number FROM master..spt_values
  WHERE number BETWEEN 1 AND 256
) AS y
WHERE x.maxid >= y.number;

DROP TABLE #a;

你可以试试这个

INSERT INTO TABLENAME (code, id) VALUES( 'code',
(Select ISNULL(MAX(id), 0) FROM TableName where code = 'code')+1)
链接地址: http://www.djcxy.com/p/95669.html

上一篇: How to create a idendity for each id

下一篇: How do I convert MySQL that uses group by and order by clauses to T