标签: teradata

如何使用 Teradata 恢复查询?

我正在使用vb script(不是 sql Assistant)提交查询。现在我不小心删除了那个vb脚本文件。如何恢复我提交的查询?它们存储在 Teradata 中的什么位置?

teradata

1
推荐指数
1
解决办法
8918
查看次数

从 Teradata 中的字符串获取名字和姓氏

在 Teradata 中,如何从字符串示例中获取名字和姓氏:Samaira Oberoi 该函数应将名字返回为:Samaira 姓氏为:Oberoi 如果没有空格,则应返回整个集合

谢谢

string teradata

1
推荐指数
1
解决办法
1万
查看次数

SQL: case when 语句带有 over (partition by)

我是新手,尝试过 Stackoverflow 上有关 SQL 的帖子中的各种提示,但未能解决这个问题。我有一个表,它是表连接的结果,看起来像这样

表A

cust_id  prod_type

 001         A
 001         A
 002         A
 002         B
 003         A
 003         C
Run Code Online (Sandbox Code Playgroud)

我需要应用逻辑:如果对于每个 cust_id 至少有一个 prod_type 为 B 或 C 的值,则返回相应的 prod_type 值。如果对于每个 cust_id,prod_type 的所有值均为 A,则返回 A。

我想要得到的最终输出是

表B

cust_id     prod_type

 001         A
 002         B
 003         C
Run Code Online (Sandbox Code Playgroud)

我尝试过使用

SELECT 
A.cust_id 
,CASE WHEN prod_type in ('B', 'C') THEN prod_type OVER (PARTITION BY A.cust_id)
 ELSE 'A' OVER (PARTITION BY A.cust_id) END AS product 
FROM ([Joined Tables]) AS A
Run Code Online (Sandbox Code Playgroud)

并且 teradata 似乎不允许在 case 语句中使用 over(clause):需要在 …

sql teradata window-functions

1
推荐指数
1
解决办法
2万
查看次数

Teradata - 如何在不锁定写入器的情况下进行选择?(锁定行访问与锁定表访问)

我正在开发一个从 Teradata DWH 获取一些数据的应用程序。LOCK ROW FOR ACCESSDWH 开发人员告诉我在所有查询之前使用SELECT,以避免延迟对该表的写入。

由于非常熟悉 MS SQL Servers 的WITH(NOLOCK)提示,我认为LOCK ROW FOR ACCESS它是等效的。但是,INSERTorUPDATE语句不允许使用LOCK ROW FOR ACCESS(我不清楚为什么会失败,因为它应该应用于语句选择的表,而不是我插入的表):

-- this works
LOCK ROW FOR ACCESS 
SELECT Cols
FROM Table

-- this does not work
LOCK ROW FOR ACCESS 
INSERT INTO SomeVolatile
SELECT Cols
FROM PersistentTable
Run Code Online (Sandbox Code Playgroud)

我已经看到LOCKING TABLE ... FOR ACCESS可以使用它,但不清楚它是否符合我的需要(NOLOCK等效 - 不阻止写入)。

问题: 在语句中进行选择时,应该使用什么提示来最大程度地减少写入延迟INSERT

teradata rowlocking table-locking

1
推荐指数
1
解决办法
1万
查看次数

选择要从 Teradata 的存储过程中输出的变量

我有一个已开始编码的存储过程,需要返回一个值。在 SQL Server 中,我只需对变量执行 SELECT 操作即可返回它。然而,这似乎不适用于 Teradata,并且没有找到有关如何执行此操作的类似示例。这是我的存储过程:

REPLACE PROCEDURE sp_Get_MyValue()
BEGIN
DECLARE mytestvar  VARCHAR(40);
SELECT mycolumn INTO mytestvar FROM MyTable;
SELECT mytestvar;
END;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

语句 2:替换失败。失败 [5526 : HY000] 由于错误,未创建/替换存储过程。{嵌套失败消息 [5526 : HY000] SPL1045:E(L10),INTO 子句无效或缺失。}

我还尝试向过程中添加 OUT 变量,但这也不起作用:

REPLACE PROCEDURE sp_Get_MyValue(mytestvarout VARCHAR(40))
BEGIN
DECLARE mytestvar  VARCHAR(40);
SELECT mycolumn INTO mytestvar FROM MyTable;
END;
Run Code Online (Sandbox Code Playgroud)

出现此错误:

作为单个语句执行。失败 [5531:HY000] 过程的参数不支持命名列表。已用时间 = 00:00:00.079

teradata

1
推荐指数
1
解决办法
8344
查看次数

Teradata - 将 Varchar 与十进制进行比较

我对一般来说都很Teradata陌生SQL。我需要通过组合三个表中的数据来创建一个表。我能够成功地加入其中的两个。我无法正确编写第三个表的连接条件。这是代码:

select s.cola, s.colb, 
t.colc, t.cold,
u.cole, u.colf, u.colg, u.colh, u.coli, u.colj, u.colk, u.coll
from table1 s 
inner join table2 t
on s.colb = t.colc
inner join table3 u
on t.cold = cast(u.colm as decimal)
order by 3
where substr(cast(s.cola as varchar(10)),6,2) = 11 and substr(cast(s.cola as varchar(10)),1,4) = 2017 and substr(cast(s.cola as varchar(10)),9,2) between 06 and 10
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

[Teradata Database] [2620] The format or data contains a bad character.

我认为问题出在这一行:on t.cold = cast(u.colm as …

sql inner-join teradata

1
推荐指数
1
解决办法
2287
查看次数

使用 Python 和 Fastload 实用程序将 csv 上传到 Teradata DB

我花了相当多的时间研究使用 Teradata Fastload 上传 csv 文件的合理方法,但文档很短、有限且不清楚。

给定某个 csv,如何将其上传到给定的数据库?

python teradata

1
推荐指数
1
解决办法
4130
查看次数

拆分在Teradata 14中分隔为独立行的列

任何人都可以帮我解决这个问题.在表格中,我现在有这样的数据.

在此输入图像描述

如何将具有分隔符TTBFA-TTBFB-TTBFC-TTBFD的列节点拆分为4行,其他列相同.

加州地区GAXAEB 102,520,000 18.71 4 8/30/2014

加州地区TTBFA 92,160,000 23.33 3 9/13/2014

加州地区TTBFB 92,160,000 23.33 3 9/13/2014

加州地区TTBFC 92,160,000 23.33 3 9/13/2014

加州地区TTBFD 92,160,000 23.33 3 9/13/2014

列NODES的值不总是5个字符,可能如下所示

在此输入图像描述

提前致谢

sql teradata

0
推荐指数
1
解决办法
5859
查看次数

Teradata - 计算期间发生数字溢出

我在我的一个Teradata查询中遇到了计算问题.我将两个数相乘,但我得到一个"计算过程中出现数字溢出".运行查询时出错.我在两个字段上运行了一个类型,它们是DECIMAL(18,15)和DECIMAL(18,9).当我进行分割时,我尝试将它们都投射到DECIMAL(18,18),但它仍然抛出错误.这是计算.UNITS是18,15,PRICE是18,9.任何人都可以给我任何解决方法,如何解决这个问题?

cast(UNITS as DECIMAL(18,18))* cast(PRICE as DECIMAL(18,18)) as  NEW_CALC
Run Code Online (Sandbox Code Playgroud)

谢谢,

克雷格

sql casting teradata

0
推荐指数
1
解决办法
2万
查看次数

安装Teradata数据库

我正在阅读有关数据仓库的知识,并了解了Teradata.但我没有在teradata网站上找到任何链接来下载teradata数据库.我可以在我的Windows或Linux机器上安装teradata数据库吗?或者它就像是从Teradata购买的软件和硬件的组合

teradata

0
推荐指数
1
解决办法
557
查看次数