SQLite:n个地方的UNION ORDER BY size连同所有的大写字母?
Posted
技术标签:
【中文标题】SQLite:n个地方的UNION ORDER BY size连同所有的大写字母?【英文标题】:SQLite: UNION of n places ORDER BY size together with all the capitals? 【发布时间】:2015-05-15 17:04:09 【问题描述】:我尝试从ne_10m_populated_places
15 个最大的城市以及FEATURECLA='Admin-0 capital'
(国家首都)的 3~5 个城市中进行选择。所以对于我所在的地区,我应该回到大约 18-20 个地方。我是 SQL 的初学者,不知道基本运算符如何链接。我试过了:
SELECT * FROM ne_10m_populated_places ORDER BY POP_MAX DESC LIMIT '15'
OR WHERE FEATURECLA='Admin-0 capital'
第一行有效,但是当我将它添加到第二行时它失败了。欢迎帮助!
编辑:还没有有效的答案。
【问题讨论】:
【参考方案1】:您的语句顺序不正确,如果您想添加特定结果,您需要执行UNION
。
在本例中,我们找到 15 个人口最多的城市,然后找到您指定的 UNION
特定城市。
在UNION
的第一个查询中,因为ORDER BY
会影响整个UNION
,所以变成了子选择。
SELECT *
FROM (
SELECT *
FROM ne_10m_populated_places
ORDER BY POP_MAX DESC
LIMIT 15
)
UNION
SELECT *
FROM ne_10m_populated_places
WHERE FEATURECLA = 'Admin-0 capital'
【讨论】:
@Doon - 只是把它变成了一个子选择。我认为现在应该可以使用...如果您发现任何问题,请告诉我,因为我手边没有 SQLite。 打败我,我想说子选择应该工作。 (至少现在可以解析) 哇,我离它真的很远。我正在测试它。 这对我不起作用,除非为子查询分配了名称。公平地说,我正在测试 SQL Server 而不是 SQLite,它的语法略有不同(SELECT TOP 15 *
而不是底部的LIMIT 15
)
@Hugolpz 好吧,这不是查询的“基本”(由于仅部分结果的顺序/限制)以上是关于SQLite:n个地方的UNION ORDER BY size连同所有的大写字母?的主要内容,如果未能解决你的问题,请参考以下文章
使用 UNION 组合两个 SELECT 查询的 ORDER BY
UNION、TOP、ORDER BY联合使用时处理顺序是啥?