【发布时间】:2019-08-19 18:27:41
【问题描述】:
我想选择不重复的ids 并在选择语句中保留行'5d' 而不是'5e'。
表格
id | name
1 | a
2 | b
3 | c
5 | d
5 | e
我试过了:
SELECT id, name
FROM table t
INNER JOIN (SELECT DISTINCT id FROM table) t2 ON t.id = t2.id
【问题讨论】:
-
确保始终指定要应用的规则。 “并保留第 5d 行而不是 5e”仅告诉我们 'd' 胜过 'e' 而我们不知道为什么。如果不是“d”和“e”而是“a”和“z”或其他任何名称怎么办? 'd' 比'e' 好,因为它在字母表中出现在'e' 之前?还是因为它不是元音?那么,如果出现重复:如何决定要保留的值?
-
我要保留最早的插入,删除最新的
-
定义“最早”?根据定义,表是无序集。这意味着您必须为数据提供订单。
标签: sql sql-server tsql