sql sqrver 我有个表a ,字段为code,createdby ,现在要获取根,code有重复值,取时间最先添加的一条数据
在 SQL Server 中,如果你想从表 a
中获取每个 code
的最早记录(即 createdby
字段的时间最早的记录),你可以使用 ROW_NUMBER()
函数来为每个 code
分配一个序号,然后选择序号为 1 的记录。假设你的表中还有一个时间戳字段(例如 created_at
),你可以按照这个字段来排序。以下是一个示例查询:
WITH RankedCodes AS (
SELECT
code,
createdby,
created_at,
ROW_NUMBER() OVER (PARTITION BY code ORDER BY created_at) AS rn
FROM
a
)
SELECT
code,
createdby,
created_at
FROM
RankedCodes
WHERE
rn = 1;
在这个查询中:
WITH
子句创建一个公共表表达式(CTE)RankedCodes
,在其中为每个 code
分配一个序号 rn
,这个序号是根据 created_at
字段的升序排列的。rn = 1
的记录,这样就能得到每个 code
对应的最早记录。请确保将 created_at
替换为你实际使用的时间戳字段名。