【发布时间】:2018-05-28 08:01:35
【问题描述】:
我对 SQL 一点也不陌生,但我使用的是 Teradata。 您如何使用维度表创建一个条件来截断一个表,具体取决于它是什么天?
以下是我在 SQL Server 上为给您提供一个想法的方法:
DECLARE @day_name varchar(20)= (SELECT day_name FROM dim_date WHERE
date = CAST( GETDATE() as date) )
BEGIN
IF @day_name = 'Friday' PRINT('Today is Friday')
ELSE PRINT('Today is not Friday')
END
非常感谢您的帮助,
雨果
【问题讨论】:
-
首先,SQL Server 有
DATENAME(weekday, GETDATE()),我相信在 Teradata 中应该是CURRENT_DATE(FORMAT 'eeee')然后你只需要IF (X) THEN blah; ELSE blah; END IF; -
嘿,我对你刚才的建议有一些问题:1/ CURRENT_DATE(FORMAT 'eeee') 没有给出 day_name 2/ 逻辑 IF (X) THEN blah;否则废话;万一;似乎不起作用 3/ 你如何管理变量?谢谢!
-
does not seem to work是您可以在 SO 这样的论坛上发表的最后有用的声明之一。尝试阅读stackoverflow.com/help/mcve,可能还有info.teradata.com/HTMLPubs/DB_TTU_16_00/index.html#page/… -
哇,这是不必要的居高临下的 - 我只是试图将文字保持在最低限度,以限制字符。无论如何感谢您的帮助
-
Teradata 提供
TD_DAY_OF_WEEK({date expression})返回 1 到 7,其中 1 是星期日。它比使用 SYS_CALENDAR 视图完成同样的任务更有效。
标签: sql conditional-statements teradata