在临时 table sql 中创建计算列

create computed column in temporary table sql

销售额,日期一,日期二

我在临时 table 中有以上三个字段,我需要从中创建等于的计算列 (日期一 - 日期二)精确的十进制年或天 我在运行下面的代码中找到第一个计算列;但是我收到底部提到的错误

ALTER TABLE #temptable
ADD [TimeDif_Day] AS (SELECT *, DATEDIFF (DAY, Date_one, Date_two))

在此上下文中不允许使用子查询。只允许标量表达式。

我想你需要从你拥有的东西中去掉虚假的东西:

ALTER TABLE #temptable ADD [TimeDif_Day] AS DATEDIFF (DAY, Date_one, Date_two)

标准有

创建本地临时文件TABLE ... ( 销售量 ... , 日期 1 ... , 日期 2 ... , TimeDif_Day GENERATED ALWAYS AS <计算表达式> )

<计算表达式> 不能引用其他三列以外的任何内容。

如果您的 DBMS 不支持该标准的这个特定功能,那么请寻找一种方法,让 table 保持原样,并在您需要的地方使用 SELECT正在使用它。否则,也许有可能在您的 DBMS 中创建第二个“临时”table 作为第一个视图的视图(“临时视图”,如果存在这样的东西),但这似乎没有得到批准标准。