Sql server 在SQL Server中使用if-ELSE选择语句

Sql server 在SQL Server中使用if-ELSE选择语句,sql-server,tsql,Sql Server,Tsql,我有一张这样的桌子: ref doc ----------- ref001 3 ref001 3 ref002 1 ref002 4 ref002 1 我想将SELECT与IF-ELSE语句或类似于此思想的任何其他条件语句一起使用: SELECT MAX(ref), THEN SELECT IF MAX(doc)) OR ELSE SUM(doc) 样本输出: ref001 3 ref002 6 您可以使用简单的聚合来做到这一点

我有一张这样的桌子:

 ref     doc 
 -----------
 ref001   3
 ref001   3 
 ref002   1 
 ref002   4 
 ref002   1
我想将
SELECT
IF-ELSE
语句或类似于此思想的任何其他条件语句一起使用:

SELECT MAX(ref), THEN SELECT IF MAX(doc)) OR ELSE SUM(doc)
样本输出:

  ref001  3
  ref002  6

您可以使用简单的聚合来做到这一点:

select ref,
    case when min(doc) = max(doc)
         then max(doc) else sum(doc) end doc_total
from t
group by ref;

如果我正确理解了您的问题,则您需要将
ref
编号与
doc
编号区分开来,条件如下(根据显示的输出)。 如果
ref
编号的所有现有
doc
编号相同,则获取
max(doc)
否则
sum(doc)


我相信你要的是案例陈述我不确定你到底在问什么
MAX(ref)
肯定会给你
ref002
,而且
ref=ref
总是正确的…
if(ref=ref)
总是正确的,所以不清楚你在问什么。
SELECT  ref,
        (CASE WHEN MAX(doc) = MIN(doc) THEN MAX(doc) ELSE SUM(doc) END) AS doc
FROM    table1
GROUP BY ref