Sql 从oracle中的同一个表中选择一行两次

Sql 从oracle中的同一个表中选择一行两次,sql,oracle,Sql,Oracle,我有一个查询,它在派生层次结构中的值之前使用connect by 这样, 将由Previor和group一起连接?我可以使用UNION ALL两次显示行,但不确定如何处理硬编码的值。请提供建议。与union一起尝试以下建议: SELECT EMP_ID, 'NAME1', SUPERVISOR_ID FROM TABLE 祝你好运! 奥利弗用union试试这个: SELECT EMP_ID, 'NAME1', SUPERVISOR_ID FROM TABLE 祝你好运! 奥利弗简单地

我有一个查询,它在派生层次结构中的值之前使用connect by 这样,


将由Previor和group一起连接?我可以使用UNION ALL两次显示行,但不确定如何处理硬编码的值。请提供建议。

与union一起尝试以下建议:

SELECT  EMP_ID, 'NAME1', SUPERVISOR_ID FROM TABLE 
祝你好运!
奥利弗

用union试试这个:

SELECT  EMP_ID, 'NAME1', SUPERVISOR_ID FROM TABLE 
祝你好运!
奥利弗

简单地使用
union all
怎么样:

WITH t AS (
      SELECT EMP_ID, FIRST_NAME, SUPERVISOR_ID
      FROM TABLE 
      WHERE EMP_STATUS = 'A' AND
            LEVEL <= 15
      START WITH EMP_id ='XXXXXXX'
      CONNECT BY PRIOR EMP_ID = SUPERVISOR_ID
     )
SELECT EMP_ID, FIRST_NAME, SUPERVISOR_ID
FROM t
UNION ALL
SELECT EMP_ID, FIRST_NAME, 'HARDCODED_VALUE'
FROM t;

简单地使用
union all
如何:

WITH t AS (
      SELECT EMP_ID, FIRST_NAME, SUPERVISOR_ID
      FROM TABLE 
      WHERE EMP_STATUS = 'A' AND
            LEVEL <= 15
      START WITH EMP_id ='XXXXXXX'
      CONNECT BY PRIOR EMP_ID = SUPERVISOR_ID
     )
SELECT EMP_ID, FIRST_NAME, SUPERVISOR_ID
FROM t
UNION ALL
SELECT EMP_ID, FIRST_NAME, 'HARDCODED_VALUE'
FROM t;

如果您使用的是Oracle,那么为什么要标记MySQL?如果您使用的是Oracle,那么为什么要标记MySQL?connect by Previor和order by都应该可以工作。已经厌倦了这一点,并没有得到预期的结果连接之前和订单应该工作。已经厌倦了,没有达到预期的效果。结果不是预期的格式。我需要它就像一个员工的两个条目一样:一个是实际值,后面是硬编码值,然后是下一个员工。它一次给出所有实际值,后跟硬编码值。但这是一个很好的例子。试图看看我是否可以在此基础上进行一些更改。如果希望结果按特定顺序排列,您只需要一个@mohanakrishnan。如果我使用order,则层次结构将中断。@mohanakrishnan。向层次结构添加计数器并将其用于排序。已尝试此操作。结果不是预期的格式。我需要它就像一个员工的两个条目一样:一个是实际值,后面是硬编码值,然后是下一个员工。它一次给出所有实际值,后跟硬编码值。但这是一个很好的例子。试图看看我是否可以在此基础上进行一些更改。如果希望结果按特定顺序排列,您只需要一个@mohanakrishnan。如果我使用order,则层次结构将中断。@mohanakrishnan。向层次结构添加一个计数器,并将其用于排序。
SELECT EMP_ID, FIRST_NAME, SUPERVISOR_ID
FROM t
UNION ALL
SELECT EMP_ID, FIRST_NAME, 'HARDCODED_VALUE'
FROM t
ORDER BY EMP_ID,
         (CASE WHEN SUPERVISOR_ID <> 'HARDCODED_VALUE' THEN 1 ELSE 2 END)