从oracle中子查询的有序结果中获取不同的结果
Get distinct result from ordered result of subquery in oracle
我们正在使用 oracle 数据库。我需要排序的结果。所以我创建了一个查询,首先对 id 进行排序,然后我对子查询结果应用查询以获得不同的参数。
查询是:
select distinct(para)
from (
select para, id
from book
where title='2'
and chapter_id='2'
and subchap='1'
and para is not null
order by id)
order by para
此 return 列表为:
a
aa
aaa
bb
c
d
dd
但我希望此列表为:
a
c
d
aa
bb
dd
aaa
我想要不同段落列表的列表?我如何使用 oracle 查询实现此目的?
也许只是想先按长度排序(至少这种方法符合你的例子):
select distinct(para) from
(select para, id from book where title='2' and chapter_id='2' and subchap='1' and para is not null)
order by length(para), para
或者你可能想按 id 排序,在这种情况下,你需要这样的东西:
select para from
(select para, min(id) as minid from book where title='2' and chapter_id='2' and subchap='1' and para is not null group by para)
order by minid
如果您想获得按 ID 排序的不同 para
。您可以尝试以下查询:
SELECT para
FROM book
WHERE title='2'
and chapter_id='2'
and subchap='1'
and para is not null
GROUP BY para
ORDER BY MIN(id)
注意,它按 MIN(id)
排序,因此如果 para
有多个 ID,它将按最小的 ID 排序。
如果para, id
组合是唯一的,您可以按两个字段分组:
SELECT para
FROM book
WHERE title='2'
and chapter_id='2'
and subchap='1'
and para is not null
GROUP BY para, id
ORDER BY id
我们正在使用 oracle 数据库。我需要排序的结果。所以我创建了一个查询,首先对 id 进行排序,然后我对子查询结果应用查询以获得不同的参数。
查询是:
select distinct(para)
from (
select para, id
from book
where title='2'
and chapter_id='2'
and subchap='1'
and para is not null
order by id)
order by para
此 return 列表为:
a
aa
aaa
bb
c
d
dd
但我希望此列表为:
a
c
d
aa
bb
dd
aaa
我想要不同段落列表的列表?我如何使用 oracle 查询实现此目的?
也许只是想先按长度排序(至少这种方法符合你的例子):
select distinct(para) from
(select para, id from book where title='2' and chapter_id='2' and subchap='1' and para is not null)
order by length(para), para
或者你可能想按 id 排序,在这种情况下,你需要这样的东西:
select para from
(select para, min(id) as minid from book where title='2' and chapter_id='2' and subchap='1' and para is not null group by para)
order by minid
如果您想获得按 ID 排序的不同 para
。您可以尝试以下查询:
SELECT para
FROM book
WHERE title='2'
and chapter_id='2'
and subchap='1'
and para is not null
GROUP BY para
ORDER BY MIN(id)
注意,它按 MIN(id)
排序,因此如果 para
有多个 ID,它将按最小的 ID 排序。
如果para, id
组合是唯一的,您可以按两个字段分组:
SELECT para
FROM book
WHERE title='2'
and chapter_id='2'
and subchap='1'
and para is not null
GROUP BY para, id
ORDER BY id