如何更改“where exists”的查找顺序
示例
SELECT name, dialcode
FROM np_prefixes
WHERE EXISTS ( SELECT d.name
FROM np_prefixes d
GROUP BY d.name )
GROUP BY name
)
我要求以与当前相反的顺序获得它遇到的第一条记录 作为示例,返回的结果是21379(从高到低)但我需要21377(从低到高)
答案 0 :(得分:1)
按DESC订购?我不确定我理解你的问题
答案 1 :(得分:1)
试试这个:
Select name, Min(dialcode)
From np_prefixes
Where Exists( Select d.name
From np_prefixes d
Group By d.name )
Group By name
实际上,您不需要Where Exists
(正如你所写的那样,它无论如何都不会做任何事情):
Select name, Min(dialcode)
From np_prefixes
Where name is not null
Group By name
答案 2 :(得分:1)
EXISTS条款中的顺序无关紧要。只要满足其中一个条件,EXISTS只返回true或false。
如果您希望以不同方式排序最终输出,则需要指定ORDER BY子句:
SELECT name, dialcode
FROM np_prefixes
WHERE EXISTS ( SELECT d.name
FROM np_prefixes d
GROUP BY d.name )
GROUP BY name
ORDER BY dialcode
答案 3 :(得分:1)
我认为您的查询与此相同:
SELECT name, dialcode
FROM np_prefixes
GROUP BY name
查看MAX()或MIN()以获取组中的最高或最低值,或者可能只是ORDER BY和limit子句。