当前位置: 首页 > 面试题库 >

Teradata SQL语法-公用表表达式

秦永望
2023-03-14
问题内容

在MSSQL 2008中使用多个CTE时,通常用逗号将它们分开。

但是,当我在Teradata环境中尝试此操作时,语法出现错误。

适用于MS SQL:

WITH CTE1 AS 
(SELECT TOP 2 Name FROM Sales.Store)
,CTE2 AS 
(SELECT TOP 2 ProductNumber, Name FROM Production.Product)
,CTE3 AS 
(SELECT TOP 2 Name FROM Person.ContactType)
SELECT * FROM CTE1,CTE2,CTE3

现在,尝试使用Teradata语法:

WITH RECURSIVE CTE1 (Name) AS 
(SELECT TOP 2 Name FROM Sales.Store)
,RECURSIVE CTE2 (ProductNumber, Name) AS 
(SELECT TOP 2 ProductNumber, Name FROM Production.Product)
,RECURSIVE CTE3 (Name) AS 
(SELECT TOP 2 Name FROM Person.ContactType)
SELECT * 
FROM CTE1,CTE2,CTE3

语法错误,应在’,’和’RECURSIVE’关键字之间使用名称或Unicode分隔标识符之类的名称。

第二次尝试(不使用RECURSIVE多次)

WITH RECURSIVE CTE1 (Name) AS 
(SELECT TOP 2 Name FROM Sales.Store)
,CTE2 (ProductNumber, Name) AS 
(SELECT TOP 2 ProductNumber, Name FROM Production.Product)
,CTE3 (Name) AS 
(SELECT TOP 2 Name FROM Person.ContactType)
SELECT * 
FROM CTE1,CTE2,CTE3

不支持多个WITH定义。


问题答案:

Teradata的14.0版支持多个CTE。您可以从Teradata开发人员网络网站下载适用于VMware的TD v14并进行测试。



 类似资料:
  • 表达式会通过parser生成抽象语法树。Native提供了解析引擎可以解析这个语法树,并计算出结果。 目前parser支持两大类功能: 基本四则运算、逻辑运算符、比较运算符 函数(如大部分的math函数、动画插值器函数、一些工具函数等) 下面是具体支持的情况: 运算符 + >= - <= * == - === () != % !== ** && > || < ! ?: Math函数 sin sqr

  • 问题内容: 如何在有效的Postgres SQL查询中编写以下内容: 问题答案: 如果您希望在一条语句中全部使用,则可以使用CTE: 笔记: 您应在列列表中添加。 您应该指定列名 明确 的。这很重要,因为两个表中的列可能不匹配。 我总是在CTE中与/ /一起使用。这是正常的用例-例如,您可以从插入中获取序列ID。

  • 主要内容:正则表达式元字符,贪婪模式非贪婪模式,正则表达式转义正则表达式(regular expression)是一种字符串匹配模式或者规则,它可以用来检索、替换那些符合特定规则的文本。正则表达式几乎适用于所有编程语言,无论是前端语言 JavaScript,还是诸如许多后端语言,比如 Python、Java、C# 等,这些语言都提供了相应的函数、模块来支持正则表达式,比如 Python 的 re 模块就提供了正则表达式的常用方法。 在使用 Python 编写

  • 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理,可以快速、准确地完成复杂的字符串查找、替换等处理要求。 常用的正则表达式元字符: 元字符|功能说明 :-:|- .|除换行符外的任意单个字符 *|0个或任意多个字符 +|1个或任意多个字符 -|用在 [ ] 中表示范围 ||两者中一个 ^|行首 $|行尾 ?|0个或1个字符 \

  • 问题内容: SQLite是否支持公用表表达式? 我想运行这样的查询: 问题答案: 从Sqlite版本3.8.3开始,SQLite支持公用表表达式。 变更记录 指示

  • 本文向大家介绍postgresql SELECT查询中的公用表表达式,包括了postgresql SELECT查询中的公用表表达式的使用技巧和注意事项,需要的朋友参考一下 示例 公用表表达式支持提取较大查询的部分。例如: