小编Rob*_*ler的帖子

创建数据模型的最佳实践

对于当前项目,我正在创建一个数据模型.有没有哪些资源可以找到一个好的数据模型的"最佳实践"?良好意味着灵活,高效,具有良好的性能,风格......一些示例问题是"列的命名","应该规范化的数据",或"应该将哪些属性导出到自己的表中".来源应该是一本书:-)

database database-design naming-conventions normalization

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

Teradata 中的 RowID

我需要使用 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)

提前致谢。

java sql database teradata

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

在MySQL中仅从日期时间(YYYY-MM-DD HH:MM:SS)中选择一个不同的日期

执行此命令会给我带来以下内容(所有列中的所有日期,因此它基本上与SELECT date相同,没有明确):

SELECT DISTINCT date FROM daily ORDER BY date DESC

2013-02-12 16:40:52
2013-02-06 11:48:49
2013-02-06 11:36:41
2013-02-06 11:35:59
2013-02-04 19:38:12
2013-02-04 18:12:30
2013-02-04 09:58:41
2013-02-04 09:43:01
2013-02-04 09:35:51
2013-02-04 09:30:22
2013-02-04 09:24:57
2013-02-04 09:21:09
2013-02-04 08:50:13
Run Code Online (Sandbox Code Playgroud)

我需要的:

2013-02-12
2013-02-06
2013-02-04
Run Code Online (Sandbox Code Playgroud)
  1. 有没有办法改变我的日期表并将其转换为YYYY-MM-DD?

  2. 如果没有,有没有办法根据当天选择不同的日期?

mysql sql

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

为什么子查询在teradata中不起作用?

我试过这个

SELECT * 
FROM
( SELECT *
FROM mytable;
);
Run Code Online (Sandbox Code Playgroud)

还有这个

SELECT * 
FROM
( SELECT *
FROM mytable
);
Run Code Online (Sandbox Code Playgroud)

为什么这些简单的查询不能在Teradata中执行?

sql teradata

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

如何在字符串列中搜索五位数字?

我正在尝试做的是确定(使用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.

sql string numeric wildcard teradata

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

CASE WHEN in WHERE 语句

我对 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)

sql teradata sql-server-2008

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

是否可以在Teradata中的字符串中对字符串进行分组?

原始表格(正是我正在使用的表格......所有逗号括号等)

id     attributes
1      123(red), 139(red), 123(white), 123(black), 139(white),
2      123(black), 139(white), 123(green),
32     223(blue), 223(red), 553(white), 123(black),
4      323(white), 139(red), 
23     523(red),
Run Code Online (Sandbox Code Playgroud)

我需要对属性数字进行分组,以便我的表格看起来像

id     attributes
1      123(red, white, black); 139(red, white);
2      123(black, green); 139(white);
32     223(blue, red); 553(white); 123(black);
4      323(white); 139(red);
23     523(red);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

不幸的是,我无法访问存储过程和函数oreplace .. translate.我以前曾经和Oracle打过交道,这是一个简单的任务,因为有人可以访问存储过程...这里我不知道该怎么做

sql teradata

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

如何分组使用存在

我有下表

personid talent
1        swim
2        play
1        play
1        swim
2        play
3        swim
3        swim
2        play
Run Code Online (Sandbox Code Playgroud)

因此,人1可以游泳和玩耍.人2只能玩.人3只能游泳.

我需要得到以下结果

personid  talent
1        both
2        play
3        swim
Run Code Online (Sandbox Code Playgroud)

我怎么能用这个exists呢?


我试过了

SELECT DISTINCT personid, 
CASE WHEN (EXISTS(
SELECT * FROM mytable
 -- I got stuck
Run Code Online (Sandbox Code Playgroud)

PS:我有一个很长的解决方案..但我不喜欢它,因为它很长

SELECT DISTINCT dis2.personid , CASE WHEN talcount = 2 THEN 'both'
ELSE talent END AS talent 
FROM
(
SELECT personid , COUNT(talent) talcount
FROM 
(
SELECT DISTINCT personid , talent 
FROM my_table …
Run Code Online (Sandbox Code Playgroud)

sql teradata

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

IN子句中的空值 - Teradata

这是我的Table1

personid
1
?
2
3
4
?
6
Run Code Online (Sandbox Code Playgroud)

这是我的查询

select * 
from table2
where personid not in 
(
select personid
from table1
)
Run Code Online (Sandbox Code Playgroud)

结果是 nothing


这是我的第二个查询

select * 
from table2
where personid not in 
(
select personid
from table1         
where personid is not null
)
Run Code Online (Sandbox Code Playgroud)

结果是 ok


问题:为什么第一个查询不起作用?我看不出任何逻辑问题.是的,是否可以null提升teradata?

sql teradata

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