Sql 如何在teradata中转换按级别连接

Sql 如何在teradata中转换按级别连接,sql,oracle,case,teradata,connect-by,Sql,Oracle,Case,Teradata,Connect By,我试图将oracle的“按级别连接”功能转换为teradata。我在网上看到过很多例子,但这个例子不同 (SELECT CASE LEVEL WHEN 1 THEN 'MB' WHEN 2 THEN 'SB' ELSE 'TOTAL' END AS DRUG_SOURCE FROM DUAL CONNECT BY LEVEL <= 3) RW 如果你们有什么想法,请告诉我。嘿,我找到了解决办法。对

我试图将oracle的“按级别连接”功能转换为teradata。我在网上看到过很多例子,但这个例子不同

 (SELECT 
     CASE LEVEL 
        WHEN 1 THEN 'MB'
        WHEN 2 THEN 'SB'
        ELSE 'TOTAL'
     END AS DRUG_SOURCE
 FROM
    DUAL 
 CONNECT BY LEVEL <= 3) RW  

如果你们有什么想法,请告诉我。

嘿,我找到了解决办法。对不起,我不能把我的问题解释清楚

下面的代码将完全按照我在teradata中希望的方式工作

select 'MB' as DRUG_SOURCE from dual  
union  
select 'SB' as DRUG_SOURCE from dual  
Union  
select 'TOTAL' as DRUG_SOURCE from dual  

嘿,我找到了解决办法。对不起,我不能把我的问题解释清楚

下面的代码将完全按照我在teradata中希望的方式工作

select 'MB' as DRUG_SOURCE from dual  
union  
select 'SB' as DRUG_SOURCE from dual  
Union  
select 'TOTAL' as DRUG_SOURCE from dual  
您可以尝试以下代码:

select DRUG_SOURCE from (select 'MB' as DRUG_SOURCE,1 as id) a
union all
select DRUG_SOURCE from (select 'SB' as DRUG_SOURCE,2 as id) b
union all
select DRUG_SOURCE from (select 'TOTAL' as DRUG_SOURCE,3 as id) c
您可以尝试以下代码:

select DRUG_SOURCE from (select 'MB' as DRUG_SOURCE,1 as id) a
union all
select DRUG_SOURCE from (select 'SB' as DRUG_SOURCE,2 as id) b
union all
select DRUG_SOURCE from (select 'TOTAL' as DRUG_SOURCE,3 as id) c

可以使用递归SQL在Teradata中生成层次结构。例如,可以从缩进列表中的数据字典构建用户或数据库层次结构。您的查询是否有更多的关系,比如一个或多个表?是的,这只是整个查询的一小部分,您还可以共享吗?否则,我可以为您提供一个递归SQL的示例,它可能实现您想要的功能,也可能无法实现您想要的功能。感谢您的关注。此查询的输出与另一个子查询进行内部连接,这两个查询位于主查询的from块下。例如:从递归查询内部joinquery 2中选择。我无法理解如何处理上述查询的递归部分。我知道我们在TD中有“recursive with”,但正如我在查询中遇到的case when block一样,我没有得到“recursive with”语法的正确形式。这里没有表名,因为dual在TD中不能使用。请看一下这个递归示例,虽然它不完全是需要的,但它显示了在查询的外部部分。恐怕您的伪代码/描述不足以为我提供建议的解决方案。您可以使用递归SQL在Teradata中生成层次结构。例如,可以从缩进列表中的数据字典构建用户或数据库层次结构。您的查询是否有更多的关系,比如一个或多个表?是的,这只是整个查询的一小部分,您还可以共享吗?否则,我可以为您提供一个递归SQL的示例,它可能实现您想要的功能,也可能无法实现您想要的功能。感谢您的关注。此查询的输出与另一个子查询进行内部连接,这两个查询位于主查询的from块下。例如:从递归查询内部joinquery 2中选择。我无法理解如何处理上述查询的递归部分。我知道我们在TD中有“recursive with”,但正如我在查询中遇到的case when block一样,我没有得到“recursive with”语法的正确形式。这里没有表名,因为dual在TD中不能使用。请看一下这个递归示例,虽然它不完全是需要的,但它显示了在查询的外部部分。恐怕您的伪代码/描述不足以为我提供建议的解决方案。