我有如下表:排序在「原始順序」使用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'和'ORDER BY分鐘(ID的區別)'在這種情況下? – Tim 2012-02-27 14:03:16
'min(id)'是組內'id'的最小值。 'id by order by'在分組查詢中不是一個有效的排序順序,而不是由'id'分組,因爲每個返回的行可能有多個'id'值;將無法確定應將哪個值用於排序目的。 – 2012-02-27 14:25:08
謝謝你的澄清:) – Tim 2012-02-27 14:27:49