我有一个临时表,列出了由不同列排序的名称列表,例如
@table:
John, 1
Mary, 3
Mary, 5
Mary, 7
John, 8
Kyle, 9
Brad, 10
当我打电话给一个简单的select * from @table
时,这就是我得到的,但当我打电话给select distinct name from @table
时,我得到了这个:
Kyle
John
Mary
Brad
为什么不使用就地订购?这是一个我不知道的sql怪癖吗?我希望(并希望)它是:
John
Mary
Kyle
Brad
编辑:附加问题:由于我在原始表上“订购了”,是否有一个功能性的原因导致它不会持续存在?
答案 0 :(得分:3)
使用SELECT DISTINCT
时,您无法通过未选择的列进行排序。做你想做的最简单的方法是:
SELECT name FROM @table GROUP BY name ORDER BY min(id);