任何人都可以帮助使用 Teradata 吗?
我想创建一个标准的查询
select count(*) from Table where Column = something
但有一个按 5 分钟时间间隔完成的时间段分组,时间列采用“时间”格式
任何的想法?
我正在尝试做的是确定(使用Teradata SQL)一个人的邮政编码是否意外地被放在地址线上.我查看了各种论坛,我找不到任何类似的问题.
最终,我想写一些类似的东西:
Where address_line_1 like '%[0-9][0-9][0-9][0-9][0-9]%'
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
目标数据库是Teradata 13.x.
我有一个表serviceClusters与列标识(1590值).然后我有另一个表serviceClustersNew与列ID,文本和注释.在此表中,我有一些文本和注释的值,ID始终为1.这里是表的示例:
[1,dummy1,hello1;
1,dummy2,hello2;
1,dummy3,hello3;
等等.]
我现在想要列ID中的值是表serviceClusters的连续索引加上当前行号:在我们的例子中,这将是1591,1592和1593.
我试图像这样解决问题:首先我用最大值更新了列ID,然后我尝试添加行号,但这不起作用:
-- Update ID to the maximum value 1590
UPDATE serviceClustersNew
SET ID = (SELECT MAX(ID) FROM serviceClusters);
-- This command returns the correct values 1591, 1592 and 1593
SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber
FROM serviceClustersNew
-- But I'm not able to update the table with this command
UPDATE serviceClustersNew
SET ID = (SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber FROM
serviceClustersNew)
Run Code Online (Sandbox Code Playgroud)
通过发送最后一个命令,我收到错误"语法错误:子查询中不允许有序分析函数.".你有什么建议吗,我怎么解决这个问题?我知道我可以使用易失性表或添加列来实现它,但有没有办法不创建新表/更改当前表?
我对 SQL 非常陌生,并且在使用 Where 语句时遇到了问题。我正在尝试查看昨天和一周后的支票,除非今天(今天是查询运行的那一天)是星期一,否则我想查看星期五和星期五之前。错误消息是“期望在‘Check_date’和‘=’之间有一些东西。
WHERE
CASE WHEN DAYOFWEEK(date) = 2
THEN (a.check_date = DATE - 3 OR a.check_date = DATE - 10)
ELSE (a.check_date = DATE - 1 OR a.check_date = DATE - 8) END
Run Code Online (Sandbox Code Playgroud) 例如查询: create table ; select xxx ; delete ;
如何在一个会话中执行它?
我看到了一个关于 mysql的类似问题的答案。诀窍是开启allow multiple queries
String dbUrl = "jdbc:mysql:///test?allowMultiQueries=true";
Run Code Online (Sandbox Code Playgroud)
特别是对于teradata,解决方案是什么?
我试过
String dbUrl = "jdbc:odbc:dsn?allowMultiQueries=true";
Run Code Online (Sandbox Code Playgroud)
它工作不正常?
我导入了一个包含电子邮件地址的文件(email_source).我需要使用此字段将此表连接到另一个表,但它在电子邮件地址之前和之后包含逗号(,)和双引号(")(例如"johnsmith@gmail.com",").我想用空格替换所有逗号和双引号.
teradata中的正确语法是什么?
我希望从 teradata 中的日期获取周数我可以看到有使用 Sys Calendar Table 的解决方案,但我想使用代码来获取周数
例如,第 28 周是 7 月 6 日至 12 日(含)
我发现这段代码在你输入 DATE 而不是 cdate 时可以正常工作
SELECT
((cdate - ((EXTRACT(YEAR FROM cdate) - 1900) * 10000 + 0101 (DATE))) - ((cdate - DATE '0001-01-07') MOD 7) + 13) / 7
Run Code Online (Sandbox Code Playgroud)
我的日期格式为 MM/DD/YY,当我运行它时,我收到错误消息
SELECT ((06/29/15 - ((EXTRACT(YEAR FROM 06/29/15) - 1900) * 10000 + 0101 (DATE))) - ((06/29/15 - DATE '0001-01-07') MOD 7) + 13) / 7
Run Code Online (Sandbox Code Playgroud)
“用户无法在 DATE 执行该操作”
任何帮助将不胜感激
我需要连接到 TeraData SOAP API,它现在需要使用登录凭据发送授权基本标头。我不知道如何解决这个问题。添加基本授权标头时,我在 SoapUI 中获得了访问权限 - 请任何人都可以帮助我直接获取代码:
这是 Header SoapUI 发送的并且响应良好:
POST http://example.com/api/soap/v6 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 302
Host: example.com
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Authorization: Basic [user&pass-base64-encoded]
Run Code Online (Sandbox Code Playgroud)
这是我尝试设置 SoapClient 的方法:
$namespace = "http://ecircle.com/developer/ecmapi";
$wsdl = "https://sslh.teradatadmc.com/teradata/api/soap/v6?wsdl";
$client = new SoapClient($wsdl, array("trace" => 1, "exceptions" => 0));
$login = 'xxx';
$password = 'yyy';
$header = new SoapHeader($namespace, 'Authorization: Basic',
base64_encode("$login:$password"));
$client->__setSoapHeaders($header);
Run Code Online (Sandbox Code Playgroud)
它不被接受,我只是收到一个 HTTP/1.1 401 未经授权的错误
堆栈跟踪向我显示了我发送的标头 - 那里缺少授权部分。
public '__last_request_headers' => string 'POST /api/soap/v6 …Run Code Online (Sandbox Code Playgroud) 在TSql中,我可以这样定义一个变量:
DECLARE @Threshold AS int;
SET @Threshold = 5;
Run Code Online (Sandbox Code Playgroud)
然后,我可以像这样使用它:
,COALESCE(
CASE WHEN X >= @Threshold THEN A ELSE NULL END
,CASE WHEN Y >= @Threshold THEN B ELSE NULL END
) AS Bla
Run Code Online (Sandbox Code Playgroud)
在TeraData上可能类似
这应该很简单但我无法得到它.我需要做一个选择来为某些帐户获取更新的日期值.
我从这里开始,T1:
+----------+---------+
| date | account |
+----------+---------+
| 4/1/2018 | 1 |
| 4/1/2018 | 2 |
| 4/1/2018 | 3 |
| 4/1/2018 | 4 |
| 4/1/2018 | 5 |
+----------+---------+
Run Code Online (Sandbox Code Playgroud)
然后在T2中更新一些日期:
+----------+---------+
| date | account |
+----------+---------+
| 7/1/2018 | 1 |
| 7/1/2018 | 2 |
+----------+---------+
Run Code Online (Sandbox Code Playgroud)
如何将此输出输入T3,仅更新这些帐户?
+----------+---------+
| date | account |
+----------+---------+
| 7/1/2018 | 1 |
| 7/1/2018 | 2 |
| 4/1/2018 | 3 |
| 4/1/2018 | …Run Code Online (Sandbox Code Playgroud)