我需要使用 select 语句提取行 ID。类似于 oracle 的行 ID 的东西。我将如何在 Teradata 中做到这一点?我正在尝试以下查询,但它抛出错误。
select rowid,emp_id,e_name from test;
Error msg : Syntax error: ROWID not allowed.
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我正在尝试select count(*)从表中进行从表的操作,由于此错误,我无法执行此操作。我不知道表中的行数。
除此以外,我没有在查询中进行任何其他聚合。
我想这与计数值有关,该计数值太大而无法存储在INTEGER中。
有什么选择?
我是 Teradata 的新手,我遇到了以前使用的数据库没有的问题。基本上,我试图减少在 where 子句中的子查询中返回的行数。我以前使用 ROWNUM 函数执行此操作没有问题。
我以前的查询是这样的:
SELECT * FROM myTable
WHERE field1 = 'foo' AND field2 in(
SELECT field2 FROM anotherTable
WHERE field3 = 'bar' AND ROWNUM<100);
Run Code Online (Sandbox Code Playgroud)
因为我不能在 TD 中使用 ROWNUM,所以我一直在寻找等效的函数,或者至少可以找到我想要的函数,即使它们不完全等效。我找到并尝试了:ROW_NUMBER、TOP 和 SAMPLE。
我尝试过 ROW_NUMBER() 但 Teradata 不允许在 WHERE 子句中使用分析函数。我尝试了 TOP N,但子查询不支持此选项。我尝试了 SAMPLE N,但子查询也不支持它。
所以...我不得不承认我现在有点卡住了,想知道是否有任何解决方案可以让我使用 Teradata 限制子查询中返回的行数,这与我所做的非常相似到现在?此外,如果没有,如何以不同的方式构建查询以适当地与 Teradata 一起使用?
谢谢!
如何查找列名与模式匹配的所有表或视图.
模式是一个简单的LIKE %abcd%模式,而不是正则表达式.
查询或查询应返回视图和表.
无论如何我可以将teradata连接到nodejs服务器吗?我有一个用例,我需要在我的其余 API 中提取 teradata 信息。
我可以使用这个npm 包吗?
我被困在一个要求中.这可能很简单,但我没有通过.
我有一个审计表Audit_Info,它捕获所有表的审计信息.表可以在同一个工作日期多次运行.我的要求是获取最近5个月的每个月的最新业务日期记录.可能会发生一个特定月份的表未运行.
表就像
table_name business_date src_rec tgt_rec del_rec load_timestamp
abc 25/10/2015 10 10 0 23/01/2016 03:06:56
abc 25/10/2015 10 10 0 23/01/2016 05:23:34
abc 07/09/2015 10 10 0 23/10/2015 05:37:30
abc 05/08/2015 10 10 0 23/09/2015 05:23:34
abc 15/06/2015 10 10 0 23/07/2015 05:23:34
abc 25/04/2015 10 10 0 23/05/2015 05:23:34
Run Code Online (Sandbox Code Playgroud)
类似的还有其他表格.我需要5张桌子.
谢谢你的帮助.
我有一些创建表脚本,我需要在我的应用程序中预先验证.我可以想到两种方式:
我发现第二种方式更有效率.因此,我使用Explain命令验证了CREATE TABLE DDL.
Teradata数据
Explain <CREATE TABLE DDL>
Run Code Online (Sandbox Code Playgroud)
神谕
EXPLAIN PLAN FOR <CREATE TABLE DDL>
Run Code Online (Sandbox Code Playgroud)
SQL SERVER
找不到存储过程'解释'.SQLState:S00062 ErrorCode:2812
Netezza公司
^找到"CREATE"(在char 18)期望
DELETE' orINSERT'或SELECT' orUPDATE'或'WITH'
DB2
错误:DB2 SQL错误:SQLCODE = -104,SQLSTATE = 42601,SQLERRMC = TABLE; EXPLAIN CREATE; JOIN,DRIVER = 4.14.111 SQLState:42601 ErrorCode:-104
还有其他更好的方法来验证Create Table DDL吗?
有没有通用的方法来处理流行的RDBMS?
如果说明是唯一可用的解决方案,那么如何为SQL Server,Netezza和DB2执行解释?
这里验证意味着检查语法(存储大小,精度,范围违规,保留关键字作为表或列名称等)
例如,查询像 -
create table abc (c1 decimal(555,44))
Run Code Online (Sandbox Code Playgroud)
我想事先得到精度溢出错误.
如何以方便的方式选择表中的所有列和聚合函数?
即说我有一个有 100 列的表,我想发送以下内容
SELECT Max(Columns 44), ALL OTHER COLUMNS
FROM zz
Group by ALL OTHER COLUMNS
Run Code Online (Sandbox Code Playgroud)
谢谢!
我的表有问题,我想使用 group by 连接字符串字段。我这里有这种情况:
USER | TEXT
A | 'hello'
A | 'by'
B | 'hi'
B | '9'
B | 'city'
Run Code Online (Sandbox Code Playgroud)
我想得到这个结果:
USER | TEXT
A | 'hello by'
B | 'hi 9 city'
Run Code Online (Sandbox Code Playgroud) 我正在使用 SQLALchemy 在 Teradata 上执行查询。我执行的查询之一是用于替换存储过程的 DDL 语句:
REPLACE PROCEDURE DEV_MIGRATION_TOOL.UNIT_TEST_NEW_STORED_PROCEDURE()
UNIT_TEST_NEW_STORED_PROCEDURE:
BEGIN
DECLARE V_VAR VARCHAR(50);
SELECT 'Hello World!'
INTO :V_VAR;
END;
Run Code Online (Sandbox Code Playgroud)
此 SQL 语句被分配给一个变量query,并由 SQLALchemy 使用会话执行方法执行:
def execute_sql_statement(self, query):
"""Generic method to execute a SQL statement on target environment."""
self.target_environment.db_session.execute(query)
self.target_environment.db_session.commit()
Run Code Online (Sandbox Code Playgroud)
我:V_VAR遇到的问题是 SQLAlchemy 假设变量是一个应该随字典一起提供的参数。请参阅此处的文档:http : //docs.sqlalchemy.org/en/latest/orm/session_api.html#sqlalchemy.orm.session.Session.execute
result = session.execute("SELECT * FROM user WHERE id=:param", {"param":5})
Run Code Online (Sandbox Code Playgroud)
在当前配置中,它会触发错误消息:
2018-04-18 19:09:27,874 - migration_script - INFO - 在 UAT 环境中执行对象 DDL 语句。2018-04-18 19:09:27,875 - migration_script - ERROR - (sqlalchemy.exc.InvalidRequestError) …