【发布时间】:2011-03-09 12:27:40
【问题描述】:
是否有一个简洁的 SQL 查询会返回行,以便只返回 first 出现的行,在第一列中具有相同的数据?也就是说,如果我有类似的行
blah something
blah somethingelse
foo blah
bar blah
foo hello
查询应该给我第一、第三和第四行(因为第一行是第一列中“blah”的第一次出现”,第三行是第一列中“foo”的第一次出现,第四row 是第一列中第一次出现的“bar”)。
我正在使用H2 database engine,如果这很重要的话。
更新:抱歉,表定义不清楚,这里更好; “blah”、“foo”等表示行中第一列的值。
blah [rest of columns of first row]
blah [rest of columns of second row]
foo [-""- third row]
bar [-""- fourth row]
foo [-""- fifth row]
【问题讨论】:
-
你的表有PK列吗?
-
当您说“第一个”时,您的意思是“我偶然发现的第一个”或“按字母顺序排列的第一个”,还是“第一个”的其他定义? :)
-
添加到@Jonathon 的问题中选择 blah something 而不是 blah somethingelse 的规则是什么
-
@everybody:我确实有一个 PK 列,“第一个”是指 PK 列的第一个(我认为这是“偶然发现”的顺序,除非另有说明) .
-
@Mark:选择第一个“blah”的规则是PK列的第一个。