Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
union中字段的SQLite排序_Sqlite_Sorting_Union - Fatal编程技术网

union中字段的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 现在,在结果集中,

我有一个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
现在,在结果集中,我得到了按自然顺序排列的每一个单词。不过,我想添加一个排序,它首先将匹配的项放入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]。做得好!