为啥SQL中select语句中,有时用:case......when …… then …… else …… end as x

发布网友 发布时间:2022-04-23 22:53

我来回答

2个回答

热心网友 时间:2023-10-12 19:22

selectsum(casewhenA.CLOSE_ID='T'then1else0end)from(selectdistinctA.CLOSE_ID,A.MO_NOfromA)T'完成种数'=COUNT(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)这句的逻辑就有问题,你要求A.CLOSE_ID='T'时,A.MO_NO的个数吗看那样你直接写selectcount(A.MO_NO)fromAwhereA.CLOSE_ID='T'就好了就算你一定要用casewhenthen,你也要用sum而不是count,你用count是所以(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)的个数,就算是0,它也是个值,仍然会被count进去啊,你只有sum时,0才是不会起做用的数。追问没看懂,我问的是end后为什么有的带as然后跟一个名称,有的不带as直接跟一个名称?
我可能没表述明白,抱歉,非专业人士。

热心网友 时间:2023-10-12 19:23

AS 别名,没有AS的仍然用原表的列名

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com