我正在创建一个表,该表的日期将出现在两列之一中,或者都不显示。
我希望第三个使用这些值之一自动填充,而无需使用更新。
CREATE TABLE [table1]
(
id [BIGINT] NOT NULL,
[date1] [DATETIME] NULL,
[date2] [DATETIME] NULL,
[date] AS (CASE
WHEN [date1] IS NOT NULL THEN [date1]
WHEN [date2] IS NOT NULL THEN [date2]
ELSE NULL
END)
)
当我使用以下命令进行测试时,这似乎不起作用
INSERT INTO [table1] (id, date1)
VALUES (1, GETDATE())
有人可以帮忙吗?
答案 0 :(得分:3)
您的代码似乎很好,如this db <> fiddle所示。但是,我建议使用COALESCE()
而不是CASE
:
CREATE TABLE [table1] (
id [bigint] NOT NULL,
[date1] [datetime] NULL,
[date2] [datetime] NULL,
[date] AS ( COALESCE(date1, date2) )
);
更简洁