首页 新闻 会员 周边 捐助

sqlserver 如何去空

0
[已解决问题] 解决于 2016-12-30 09:33

sqlserver 在查询过程中,如何做到只保留索引最小并且不为null的那一列的值

ListentoYourHeart的主页 ListentoYourHeart | 菜鸟二级 | 园豆:206
提问于:2016-12-29 14:10
< >
分享
最佳答案
0

思路:将为null的去掉,获取最小值,

另外,你的问题,到底是啥,我懵圈了

奖励园豆:5
悦光阴 | 老鸟四级 |园豆:2251 | 2016-12-29 15:57

不是取最小值,是在每一行中,都取列的索引最小的那个不为null值,后面的值都不要

ListentoYourHeart | 园豆:206 (菜鸟二级) | 2016-12-29 17:20

@ListentoYourHeart: 懂了,晕,还有这种变态的需求

解决方法很简单,使用case 子句吧

select  case

when col1 is not null then co1

when col2 is not null then co2

....

end

悦光阴 | 园豆:2251 (老鸟四级) | 2016-12-29 18:14

@悦光阴: 就是这个,谢咯~

ListentoYourHeart | 园豆:206 (菜鸟二级) | 2016-12-30 09:31
其他回答(1)
0

SELECT *TOP 1 FROM TABLE1   ORDER BY ISNULL(索引列,999999999999)

不知道能不能解决你的问题

 

 

微风吹过12x | 园豆:73 (初学一级) | 2016-12-29 14:38
NULL 300 Null 200 NULL
100       150 350 450 550

我只想取到100和300这两个数,其他的都不要

支持(0) 反对(0) ListentoYourHeart | 园豆:206 (菜鸟二级) | 2016-12-29 14:48

@ListentoYourHeart: 

从左到右列名A-E

SELECT
(
SELECT
TOP 1 A
FROM
TABLE
WHERE
A IS NOT NULL
) AS A,
(
SELECT
TOP 1 B
FROM
TABLE
WHERE
B IS NOT NULL
) AS B

我SQL写的不多,你再看看 其他朋友有没有更好的办法

支持(0) 反对(0) 微风吹过12x | 园豆:73 (初学一级) | 2016-12-29 14:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册