如何在sql server中的select列中写入条件?
我有一个Select语句,如如何在sql server中的select列中写入条件?,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我有一个Select语句,如 select AVG(CAST(DATEDIFF(Day,CreatedDate,FirstTouchDate) AS BIGINT) else null end) AS avgdaystofirstattempt, AVG(CAST(DATEDIFF(Day,CreatedDate,Completeddate) AS BIGINT)) AS AvgDaystoComplete from Table1 如何在select本身(而不是where子句)中
select AVG(CAST(DATEDIFF(Day,CreatedDate,FirstTouchDate) AS BIGINT) else null end) AS avgdaystofirstattempt,
AVG(CAST(DATEDIFF(Day,CreatedDate,Completeddate) AS BIGINT)) AS AvgDaystoComplete
from Table1
如何在select本身(而不是where子句)中为列AVGDaySofirStatTest-FirstTouchdate编写条件,与“%1900%”不同
提前感谢您可以使用CASE有选择地在聚合语句中包含数据。你的问题不太清楚,但我认为你想要这样的东西:
SELECT AVG(
CASE
WHEN DATEDIFF(Day,CreatedDate,FirstTouchDate) < 1900 THEN NULL
ELSE CAST(DATEDIFF(Day,CreatedDate,FirstTouchDate) AS BIGINT)
END
) AS avgdaystofirstattempt,
AVG(CAST(DATEDIFF(Day,CreatedDate,Completeddate) AS BIGINT)) AS AvgDaystoComplete
FROM Table1
你不能。该条件具有where子句中不允许的函数avg。having条款中允许这样做。与其只是显示一个不起作用的查询,为什么不编辑这个问题并包含样本数据和期望的结果呢?我认为他试图做的是在avg语句中有选择地只包含某些行,而不是将它们完全排除在查询之外。