首页 > 解决方案 > Interbase - 组合查询

问题描述

我有一个带有 to 列的表:QuestionAnswer. 我想要一个查询,该查询会导致一列可互换地包含Question和它各自的Answer.

举例:

表“Question_Answer”

   Q1, A1
   Q2, A2
   Q3, A3
   Q4, A4

查询输出,列名“Question_Answer_Result”

   Q1
   A1
   Q2
   A2
   Q3
   A3
   Q4
   A4

我尝试了以下命令:

select "Question_Answer_Result"
from (select "Question_Answer"."Question"
      from   "Question_Answer"
      union all
      select "Question_Answer"."Answer"
      from   "Question_Answer"
     )

但我收到一条消息“命令意外结束”。

什么是正确的 SQL 命令?

谢谢。

标签: interbase

解决方案


您在初始选择中缺少列引用。正如我在第一个回复中提到的,“问题”列是联合子查询的结果。您需要按名称选择该列(或 * 就足够了),然后重命名它。

从中选择问题“question_answer”(从 question_answer 联合中选择问题全部从 question_answer 中选择答案)

编辑:这是获得准确输出的 SQLite

select question 'question_answer'
from (
    select question from question_answer
    union all
    select answer from question_answer
) x
order by substr(question,length(question-1),1),substr(question,1) desc

请注意,输出顺序不会如您所示。


推荐阅读