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