sql-server – 如何在不同的列中选择不同的行值
发布时间:2020-05-24 14:01:36 所属栏目:MsSql 来源:互联网
导读:我有一张桌子. ID Date Value1 12/12/2014 A1 24/12/2014 T2 13/12/2014 A2 23/12/2014 T3 12/03/2014 A3 12/04/2014 T4 12/12/2014 T5 12/04/2014 T 我想要结果,如ADate是值为A的
|
我有一张桌子. ID Date Value 1 12/12/2014 A 1 24/12/2014 T 2 13/12/2014 A 2 23/12/2014 T 3 12/03/2014 A 3 12/04/2014 T 4 12/12/2014 T 5 12/04/2014 T 我想要结果,如ADate是值为A的日期,而TDate是值为T的日期 ID ADate TDate 1 12/12/2014 24/12/2014 2 13/12/2014 23/12/2014 3 12/03/2014 12/04/2014 4 - 12/12/2014 5 - 12/04/2014 解决方法使用条件聚合.试试这个SELECT id,Min(CASE
WHEN value = 'A' THEN [Date]
END) Adate,Max(CASE
WHEN value = 'T' THEN [Date]
END) Tdate
FROM Tablename
GROUP BY id
更新:获取具有相同ID的行 DECLARE @cnt INT
SELECT TOP 1 @cnt = Count(1) / 2
FROM #test
GROUP BY id
ORDER BY Count(1) / 2 DESC
SELECT id,Max(CASE
WHEN value = 'T' THEN [Date]
END) Tdate
FROM (SELECT Row_number()
OVER (
partition BY id,value
ORDER BY date)%@cnt rn,*
FROM #test) a
GROUP BY id,rn (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLServer XML查询快速入门(18句话)
- sql-server-2005 – 在SQL Server 2005中向存储过程添加参数
- sql-server – 使用HAProxy为镜像SQL Server提供容错功能
- sql – 如何检测和删除仅包含空值的列?
- sql – 在Oracle中搜索JSON数组
- 如何在单个数据库中将Hibernate用于两个不同的模式
- linq – 如何使用SqlAzureExecutionStrategy和“Nolock”
- 用于搜索专利数据库的Python模块,即USPTO或EPO
- sql-server – 高效插入具有聚簇索引的表
- sql-server – 从证书创建登录的目的是什么?
