У меня есть следующая таблица:Сортировка в «первоначальном порядке» при использовании DISTINCT
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
я не нужна сортировка, мне нужны результаты что-то вроде бела ow:
FileName
--------------------
File2
File1
Я работаю над SQL Server 2008. Я хочу сохранить исходный порядок результатов.
из любопытства, в чем разница между 'порядком id' и' порядка по мин (идентификатор) 'в этом контексте? – Tim
'min (id)' - наименьшее значение 'id' внутри группы. 'order by id' не является допустимым порядком сортировки в сгруппированном запросе, который не сгруппирован по' id', потому что для каждой возвращаемой строки может быть несколько значений 'id'; не было бы способа определить, какое значение следует использовать для сортировки. –
Спасибо за разъяснение :) – Tim