sqlserver 查询的别名无效

SELECTCOUNT(sex)ASsexNum,(sexNum/(SELECTCOUNT(USER)FROMTdiaocha)ASMyPercentFROMTdiaoc... SELECT COUNT(sex) AS sexNum, (sexNum / (SELECT COUNT(USER) FROM Tdiaocha) AS MyPercent
FROM Tdiaocha
GROUP BY sex
ORDER BY sex

以上预计执行后,提示“列名 sexNum无效”,请高手指点一下?
展开
 我来答
0808xyj
推荐于2016-08-06 · TA获得超过1891个赞
知道大有可为答主
回答量:1237
采纳率:100%
帮助的人:1078万
展开全部
SQLServer 不支持这样的别名

select t.sexNum,(t.sexNum + 0.0)/(SELECT COUNT(username) sexNum FROM Tdiaocha)*100 as MyPercent from ( SELECT COUNT(sex) sexNum FROM Tdiaocha GROUP BY sex) t
更多追问追答
追问
请问,高手。为什么不支持这样的别名呢,原理是怎样的?
而且为什么不加0.0,MyPercent显示为0,而不是0.5呢?
追答

本来 你的意图是 想统计 性别个数以及占比,那么就需要查询两次,一定要一个SQL语句的话,也是可以的,嵌套查询或者子查询完成。别名 顾名思义,仅代替某一字段或聚合函数后的,那么别称使用的范围仅仅在字段上和表中的字段,你告诉我 sexNum / (SELECT COUNT(USER)  FROM Tdiaocha)  中的 sexNum  是什么? 数据库可不识别啊,要么你把它放置一个范围 内,然后再应用别称,示例:

select biecheng.sex from (select sex from Tdiaocha ) as biecheng

 我故意加0.0的,就是担心你的也是整型类型,因为整型类型的数值相除, 直接去掉小数部分,如1/2 = 0 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式