使用 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 所提到的,您不引用数字(这使它们成为字符串)。而且您不会将数字与字符串进行比较。