Sql 从oracle中的同一个表中选择一行两次
我有一个查询,它在派生层次结构中的值之前使用connect by 这样,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 祝你好运! 奥利弗简单地
将由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)