我有下表:
CREATE TABLE [dbo].[TableB](
[id] [int] NULL,
[FileName] [varchar](20) NULL
)
INSERT INTO [TableB] ([id],[FileName])VALUES(1,'File2')
INSERT INTO [TableB] ([id],[FileName])VALUES(2,'File1')
INSERT INTO [TableB] ([id],[FileName])VALUES(3,'File1')
当我执行一个简单的 SELECT
时,它会给出以下结果:
id FileName
----------- --------------------
1 File2
2 File1
3 File1
但是,当我添加 DISTINCT
时,它给出:
FileName
--------------------
File1
File2
我不需要排序,我需要如下所示的结果:
FileName
--------------------
File2
File1
我正在使用 SQL Server 2008。我想保持结果的原始顺序。
最佳答案
假设您希望结果按每个文件名记录的第一个 id 排序,请尝试:
select FileName
from TableB
group by FileName
order by min(id)
关于sql - 使用 DISTINCT 时按 "original order"排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9465843/