【问题标题】:User-Defined variable in query teradata查询 teradata 中的用户定义变量
【发布时间】:2014-10-21 14:20:46
【问题描述】:

我想在不同的时间运行一个类似的查询,只改变 where 子句中的一件事和它从中提取的表名。

declare ?tablename varchar(100);
set ?tablename = 'some_table_this_time';

declare ?id int;
set ?id = 12

select * from ?tablename
where my_id = ?id

此语法不适用于 teradata。我在其他 sql 程序中使用过 @variable 语法,但在 teradata 中找不到正确的方法。

研究:

http://forums.teradata.com/forum/database/using-parameters-with-queries

How to use variables in Teradata SQL Macros

【问题讨论】:

  • 可能重复:this
  • 大多数 DBMS(包括 Teradata)不支持在动态 SQL 之外作为变量传递的表名。如果您使用 SQL 助手,您可以简单地按原样运行 select * from ?tablename where my_id = ?id,它会提示输入这两个变量。

标签: sql syntax teradata


【解决方案1】:

在 Teradata 中没有直接等效的语法。查看 Dieter 的这篇博文,了解如何做类似事情的有趣示例:

http://developer.teradata.com/blog/dnoeth/2011/03/global-and-session-level-parameters-in-sql

【讨论】:

  • 链接已损坏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-22
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多