sql – 查找多个列的第一个非空值
发布时间:2020-12-12 16:10:06 所属栏目:MsSql教程 来源:网络整理
导读:我试图在一组很多列中获取第一个非空值.我知道我可以使用每列的子查询来完成此操作.以表演的名义,在这种情况下真的算不算,我想在单程中做到这一点. 以下列举数据: col1 col2 col3 sortCol====================================NULL 4 8 11 NULL 0 25 7 NULL
我试图在一组很多列中获取第一个非空值.我知道我可以使用每列的子查询来完成此操作.以表演的名义,在这种情况下真的算不算,我想在单程中做到这一点.
以下列举数据: col1 col2 col3 sortCol ==================================== NULL 4 8 1 1 NULL 0 2 5 7 NULL 3 我的梦想查询将在sortCol中排序的每个数据列中找到第一个非空值. 例如,当选择前三列的神奇聚合,按sortCol降序排序. col1 col2 col3 ======================== 5 7 0 或当排序升序时: col1 col2 col3 ======================== 1 4 8 有没有人知道解决方案? 解决方法在拒绝该解决方案之前,您是否真的进行了性能测试?SELECT (SELECT TOP(1) col1 FROM Table1 WHERE col1 IS NOT NULL ORDER BY SortCol) AS col1,(SELECT TOP(1) col2 FROM Table1 WHERE col2 IS NOT NULL ORDER BY SortCol) AS col2,(SELECT TOP(1) col3 FROM Table1 WHERE col3 IS NOT NULL ORDER BY SortCol) AS col3 如果这很慢,可能是因为你没有适当的索引.你有什么索引? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sqlserver的换行
- sql-server – 为什么TVP必须是READONLY,为什么其他类型的参
- sql-server – ‘;’在TSQL语句的开头
- SQL大量数据查询的优化及非用like不可时的处理方案
- MYSQL ERROR 1045 (28000): Access denied for user (using
- SqlServer存储过程输出参数
- sql – ActionView :: Template :: Error(PG :: UndefinedF
- sql-server-2008 – 在EF4中控制ArithAbort
- sql-server-2008 – 如何在SQL Server 2008中备份/恢复不包
- SQLSERVER 中sp_who, sp_who2和sp_who3