我有一个名为 RANDOMDate 的列,它的数据类型为 datetime。只有当它们是数字内容时,我才想在所有列中执行 STDEVP。因此,如果我遇到 RANDOMDate,我希望下面的 case 语句只为 RANDOM 传入 0,下面的语句仅适用于 RANDOMDate 列:
select STDEVP(CASE WHEN ISNUMERIC(CAST([DataStorage].[dbo].[DateTest].[RANDOMDate] as nvarchar(max))) = 1 THEN [DataStorage].[dbo].[DateTest].[RANDOMDate] ELSE 0 END) AS StandardDeviation
from [DataStorage].[dbo].[DateTest]
但是,这失败并出现错误:
操作数数据类型 datetime 对 stdevp 运算符无效。
我期待既然case语句说当char值的ISNUMERIC然后传入列,否则传入0,这不应该解决RANDOMDate是日期时间的问题吗?
任何想法可能是什么问题?请注意,我必须将 STDEVP 保留在 case 语句的外部,因为我需要一个聚合函数。