使用 IF 语句创建视图(WEEKDAY CASE)
Create VIEW with IF STATEMENT (WEEKDAY CASE)
我需要在 SQL 服务器中创建一个视图,其中 returns 不同的结果,来自不同的 table,一周中的每一天。
是否可以创建如下所示的视图?
例如,如果是星期天,它是 Tbl_FRUITS
的 returns 行,如果是星期一,它是 Tbl_VEGETABLE
.
的 returns 行
CREATE VIEW TBL_CART
AS
IF (DATEPART(WEEKDAY,GETDATE()) = '1')
SELECT * FROM Tbl_FRUITS
ELSE IF (DATEPART(WEEKDAY,GETDATE()) = '2')
SELECT * FROM Tbl_VEGETABLE
将 union all
与您的条件一起用作适当的 where
子句。您将需要确保您 return 来自每个不同 table 的相同列 - 但无论如何这对于视图来说都是正常的。根据不同的 tables.
重复并集的天数
SELECT *
FROM Tbl_FRUITS
WHERE DATEPART(WEEKDAY,GETDATE()) = 1
UNION ALL
SELECT *
FROM Tbl_VEGETABLE
WHERE DATEPART(WEEKDAY,GETDATE()) = 2;
注意:正如 Gordon Linoff 所提到的,您不引用数字(这使它们成为字符串)。而且您不会将数字与字符串进行比较。
我需要在 SQL 服务器中创建一个视图,其中 returns 不同的结果,来自不同的 table,一周中的每一天。
是否可以创建如下所示的视图?
例如,如果是星期天,它是 Tbl_FRUITS
的 returns 行,如果是星期一,它是 Tbl_VEGETABLE
.
CREATE VIEW TBL_CART
AS
IF (DATEPART(WEEKDAY,GETDATE()) = '1')
SELECT * FROM Tbl_FRUITS
ELSE IF (DATEPART(WEEKDAY,GETDATE()) = '2')
SELECT * FROM Tbl_VEGETABLE
将 union all
与您的条件一起用作适当的 where
子句。您将需要确保您 return 来自每个不同 table 的相同列 - 但无论如何这对于视图来说都是正常的。根据不同的 tables.
SELECT *
FROM Tbl_FRUITS
WHERE DATEPART(WEEKDAY,GETDATE()) = 1
UNION ALL
SELECT *
FROM Tbl_VEGETABLE
WHERE DATEPART(WEEKDAY,GETDATE()) = 2;
注意:正如 Gordon Linoff 所提到的,您不引用数字(这使它们成为字符串)。而且您不会将数字与字符串进行比较。