我有一个类似于MAC地址的字段,第一部分是组ID,第二部分是序列号。我的字段是字母数字,长度为5位,前3个是组ID。
我需要一个查询,以字典方式为我提供所有不同的组ID和第一个序列号。以下是示例数据:
ID
-----
X4MCC
X4MEE
X4MFF
V21DD
8Z6BB
8Z6FF
期望的输出:
ID
-----
X4MCC
V21DD
8Z6BB
我知道我可以做SELECT DISTINCT SUBSTRING(ID, 1, 3)
但我不知道如何按字典顺序排列第一个。
答案 0 :(得分:3)
另一种方式似乎与 gbn 的查询成本相同:
SELECT MIN(id)
FROM your_table
GROUP BY SUBSTRING(id, 1, 3);
答案 1 :(得分:2)
SELECT
ID
FROM
(
SELECT
ID,
ROW_NUMBER() OVER (PARTITION BY SUBSTRING(ID, 1, 3) ORDER BY ID) AS rn
FROM MyTable
) oops
WHERE
rn = 1