SQL计算列,无煤,两个DateTime字段,索引
我的数据库中有以下两列: 交货日期(日期时间) 交付\u覆盖(日期时间) (我必须保留我做的其他事情的原始交付日期) 我创建了以下计算列 交付包装日期 公式:SQL计算列,无煤,两个DateTime字段,索引,sql,sql-server-2008,Sql,Sql Server 2008,我的数据库中有以下两列: 交货日期(日期时间) 交付\u覆盖(日期时间) (我必须保留我做的其他事情的原始交付日期) 我创建了以下计算列 交付包装日期 公式:(合并(nullif([Delivery\u Override],'',[Delivery\u Date])) 现在我可以做如下选择: select * from Deliveries where Delivery_PackDate = '2019-09-24' 如果已填写,则自动选择覆盖日期,否则选择原始日期 问题是我想为它编制索引,
(合并(nullif([Delivery\u Override],'',[Delivery\u Date]))
现在我可以做如下选择:
select * from Deliveries where Delivery_PackDate = '2019-09-24'
如果已填写,则自动选择覆盖日期,否则选择原始日期
问题是我想为它编制索引,但SQL不允许这样做,因为它是不确定的
我想我在这里做错了什么,我怎样才能正确地解决这个问题呢?有什么建议吗
谢谢。问题是您正在转换为字符串。以下工作很好:
create table t (
Delivery_Override datetime,
Delivery_Date datetime
);
alter table t add dt as (coalesce(Delivery_Override, Delivery_Date)) persisted;
create index idx_t_dt on t(dt);
他是一把小提琴
没有值为'
的日期/时间,您的表中有这些列。。。