我希望能够设置添加一个回答问题的字段"对于此记录中的值,该值是否满足另一个表中的某些条件?".我想我会尝试case-when用exists,但Teradata的(我DBMS)不喜欢它.有什么建议?
select foo,
(case when exists (select x.foo
from somedb x
where x.bar > 0)
then '1' else '0' end) as MyFlag
from mydb
Run Code Online (Sandbox Code Playgroud) 嗨,我有一个有趣的问题.我有一个员工表AS跟随
CREATE TABLE EMPLOYEE(
EMPLOYEE_ID INTEGER,
SALARY DECIMAL(18,2),
PAY_PERIOD DATE)
Run Code Online (Sandbox Code Playgroud)
现在,这些表中的员工中有些人每月获得报酬,有些是每周一次,有些是每两周一次,有些是每天一次.我们想要的是如果连续三个支付期的工资相等,找到一个指示'Y'的指标.让我们举个例子.
Employee Pay_Period Salary
1 01/01/2012 $500
1 08/01/2012 $200
1 15/01/2012 $200
1 22/01/2012 $200
1 29/01/2012 $700
Run Code Online (Sandbox Code Playgroud)
在这种情况下,指标应为"是",因为连续3个工资期的薪水为200美元.
由于支付周期的数量不是恒定的,我不确定如何编写这段代码,因为我不知道我需要多少左连接.因为我在Teradata中写这个我尝试使用RECURSIVE函数但是难倒.关于如何继续这个的一般想法?我宁愿不创建存储过程或具有PL/SQL逻辑.
这些表已经存在,但我不知道它们是如何被装箱的.现在我想获得表的主键和外键的定义.我怎样才能做到这一点?
我有一个列日期,例如
date CHAR(7) CHARACTER SET LATIN NOT CASESPECIFIC,我有一些值,如2010-12、2011-10等。我想将它们更改为日期格式yyyy / mm。我该怎么做?谢谢
我正在尝试使用RJDBC连接R和Teradata.
我发现这个链接有一个使用mysql的例子,但我不知道如何用teradata做同样的事情.
library(RJDBC)
drv <- JDBC("com.mysql.jdbc.Driver",
"/etc/jdbc/mysql-connector-java-3.1.14-bin.jar",
identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://localhost/test", "user", "pwd")
Run Code Online (Sandbox Code Playgroud)
我已经下载了这个驱动程序:http: //downloads.teradata.com/download/connectivity/jdbc-driver 但是我不确定我应该在哪里引用该目录.
我知道有一个teradataR包在那里,但我不知道它是否真的使用R 3.0.0工作.
目前我只是将数据从数据库中拉出来很有意思.简单的事情SELECT * FROM table.问题是RODBC很慢......
还有其他选择来完成这项任务吗?
我有2-3个不同的列名称,我想在整个数据库中查找并列出所有具有这些列的表.任何简单的查询?
我已经看到MySQL的解决方案,这在这里不起作用,因为TD据我所知没有方案,但我找到了这个.
并尝试了这段代码:
SELECT TableName
FROM DBC.COLUMNS
WHERE DatabaseName = 'DB_NAME' and
ColumnName in ('col1', 'col2')
Run Code Online (Sandbox Code Playgroud)
但肯定必须使用子查询来获取TableName,因为DBC.COLUMNS没有该字段.还有什么想法?
我有两张桌子(User和Salary).我想做一个left join从User到Salary.对于每个用户,我想要他们的名字和工资.如果他们没有工资,那么该领域可以留空.到目前为止,我们需要的是左连接.但我只想要每个用户一行.由于某些缺陷,一个用户可以有几个工资(见表薪水).我只想要每个用户一行,可以随机选择(或前1).我怎么做?预期的输出显示在底部.
用户表:
User Name
1 Adam
2 Al
3 Fred
Run Code Online (Sandbox Code Playgroud)
薪资表
User Salary
1 1000
2 2000
2 2000
Run Code Online (Sandbox Code Playgroud)
预期表格:
User Name Salary
1 Adam 1000
2 Al 2000
3 Fred null
Run Code Online (Sandbox Code Playgroud) 有人可以解释一下,Teradata qualify...over...partition by和group by...havingTeradata有什么区别?
我还想知道他们的表现是否有任何差异.
易失性表很好,有点类似于sql server(我的背景)中的临时表.有没有办法检查是否已存在易失性表?第一次运行时,此代码无效:
DROP TABLE SomeVolatileTable;
CREATE VOLATILE TABLE SomeVolatileTable AS
(
SELECT
TOP 10 *
FROM SomeSourceTable
) WITH DATA ON COMMIT PRESERVE ROWS;
Run Code Online (Sandbox Code Playgroud)
在SQL Server中,您可以检查是否存在临时表:
IF OBJECT_ID('tempdb..#SomeTempTable') IS NOT NULL DROP TABLE #SomeTempTable
Run Code Online (Sandbox Code Playgroud)
Teradata中存在类似的东西吗?