结合两个不同的Oracle查询

时间:2013-06-25 15:08:09

标签: sql oracle

所以我有两个问题

SELECT DISTINCT ReservationGroupName FROM EventDataTable

SELECT DISTINCT BookingEventType FROM EventDataTable

我正在创建一个表单,允许您按其中一个或两个进行过滤,因此我需要在选择下拉列表中打印出每个不同的结果。

我尝试了UNION和UNION ALL,但我只获得了ReservationGroupName的结果数组,还包含 BookingEventType的结果。 ReservationGroupName应该有540个结果,BookingEventType应该有63个结果,并返回一个名为ReservationGroupName的数组,其中包含603个元素。我的问题是我需要区分结果

单独进行两次查询是可能的,但似乎我应该能够将它结合起来,但是看几个小时的旧论坛让我感到困惑。

当前代码:

SELECT DISTINCT ReservationGroupName AS \"group\", '' AS \"type\" FROM EventDataTable
    UNION
SELECT DISTINCT BookingEventType AS \"type\", '' AS \"group\" FROM EventDataTable

返回包含所有数据的ReservationGroupName数组,但也返回一个长度相同的数组,该数组由名为EventDataTable的空值填充。

2 个答案:

答案 0 :(得分:1)

这可能听起来很愚蠢,但UNION可能依赖于字段名称并为您提供一个结果集,该结果集在您附加到下拉列表的字段中有一堆空字符串。尝试这样的事情......

SELECT DISTINCT ReservationGroupName AS \"entry\", 'GroupName' AS \"type\" FROM EventDataTable
    UNION
SELECT DISTINCT BookingEventType AS \"entry\", 'EventType' AS \"type\" FROM EventDataTable

答案 1 :(得分:0)

UNION应该工作。请在下面找到我创建的表格,并从两列中获取不同的值。希望您的设计与以下相同。

创建表EventDataTable ( ReservationGroupName VARCHAR2(20) ,BookingEventType VARCHAR2(20) );

插入EventDataTable值('EMP','S');

插入EventDataTable值('ABC','T');

SELECT DISTINCT ReservationGroupName FROM EventDataTable 联盟 SELECT DISTINCT BookingEventType FROM EventDataTable;

DIS_VAL

ABC EMP 小号 Ť