union中字段的SQLite排序
我有一个sqlite联合查询:union中字段的SQLite排序,sqlite,sorting,union,Sqlite,Sorting,Union,我有一个sqlite联合查询: SELECT term,abstract, termid, nterm FROM (SELECT term, subterm, termid, nterm FROM t1 WHERE (nterm like '%bayern%') UNION SELECT term, subterm, termid, nterm FROM t2 WHERE (subterm like '%bayern%') ) ORDER BY nterm+0 ASC 现在,在结果集中,
SELECT term,abstract, termid, nterm FROM
(SELECT term, subterm, termid, nterm FROM t1 WHERE (nterm like '%bayern%')
UNION
SELECT term, subterm, termid, nterm FROM t2 WHERE (subterm like '%bayern%')
) ORDER BY nterm+0 ASC
现在,在结果集中,我得到了按自然顺序排列的每一个单词。不过,我想添加一个排序,它首先将匹配的项放入nterm,然后放入subterm(每个项按natsort排序)
这可能吗?我试图给括号中的查询命名(分别使用t1和t2),但它返回了一个错误。这里有一种方法
Select term,subterm,termid,nterm From
(
SELECT 1 as termkey,term, subterm, termid, nterm FROM t1 WHERE (nterm like '%bayern%')
UNION
SELECT 2, term, subterm, termid, nterm FROM t2 WHERE (subterm like '%bayern%')
) innerquery
order by termkey,nterm
如果我明白你的意思,不管怎样,很容易适应
注意:在执行select*From(somequery)时,必须在括号中为查询别名,否则解析器会阻塞查询
这是一个更详细的版本,使上述发生的事情更清楚
Select innerquery.term,innerquery.subterm,innerquery.termid,innerquery.nterm From
(
SELECT 1 as termkey,term, subterm, termid, nterm FROM t1 WHERE (nterm like '%bayern%')
UNION
SELECT 2, term, subterm, termid, nterm FROM t2 WHERE (subterm like '%bayern%')
) innerquery
order by innerquery.termkey,innerquery.nterm
谢谢,它工作得很好,我没有想到我可以使用[SELECT number AS field]。做得好!