我有以下表,并希望将通过SQL服务器GROUP BY只显示第一个匹配
[name] [phone]
doniking 081222222222
doni 081222222222
Bambang Gentholet 081111111111
Bambang 081111111111
我想要得到这样的结果:
[name] [phone]
doniking 081222222222
Bambang Gentholet 081111111111
我有以下表,并希望将通过SQL服务器GROUP BY只显示第一个匹配
[name] [phone]
doniking 081222222222
doni 081222222222
Bambang Gentholet 081111111111
Bambang 081111111111
我想要得到这样的结果:
[name] [phone]
doniking 081222222222
Bambang Gentholet 081111111111
试试这个
SELECT [name],[phone]
FROM (
SELECT *,Row_Number() Over (Partition By phone Order By (Select Null)) AS RN
FROM Table1
) AS T
Where RN = 1
OFFSET n ROWS
您可以用您的自定义值替换n ...
试试这个
SELECT MAX(name), phone FROM <TableName> group by phone
编辑:胶印
SELECT MAX(name), phone FROM <TableName> group by phone
order by phone offset 10 rows
FETCH NEXT 5 ROWS ONLY;
Check this进一步的细节。
如何应用OFFSET到那个查询? –
试试这个
SELECT name,
phone
FROM (SELECT *,
Row_number()
OVER(
partition BY phone
ORDER BY name) row_num -- or you can have order by (select null)
FROM table1) t
WHERE row_num = 1
如何将OFFSET应用于该查询? –
你的意思是申请OFFSET是什么意思?你能详细说明你在找什么吗? –
我打算分页需要LIMIT和OFFSET的结果。不幸的是我的SQL2005不支持OFFSET关键字。 –
如果我增加一列型日期,如何让基于最新日期的名字吗? –
你可以使用Max函数... –
如何将OFFSET应用于该查询? –