Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql server中的select列中写入条件?_Sql_Sql Server 2008_Tsql - Fatal编程技术网

如何在sql server中的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语句,如

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语句中有选择地只包含某些行,而不是将它们完全排除在查询之外。