回 帖 发 新 帖 刷新版面

主题:一个语句查询每个字段的排序

如果有表1 有语文数学英语三个字段


语文 数学 英语
100   45   53
34    53    44
87     33    33

我想实现查询后语文字段出现语文的所有排名,数学出现数学的,...

为什么不能做如下查询:

select yuwen=(select yuwen from 1 order by yuwen),shuxue=(select shuxue from 1 order by shuxue),yingyu=(select yingyu from 1 order by yingyu) from 1;




回复列表 (共5个回复)

沙发

select yuwen from 1 order by yuwen
这个值必须是唯一的才可以

板凳

那怎么办啊

3 楼

那是不可能的,因为那样就会实现数据不统一,会有问题,你只能取舍那些

4 楼

select yuwen=(select yuwen from 1 order by yuwen),shuxue=(select shuxue from 1 order by shuxue),yingyu=(select yingyu from 1 order by yingyu) from 1;
晕,你的(select yuwen from 1 order by ******)返回的如果是多条记录,那么=号就不行,而用子查询里面出现了 order by 就一定要出现 top 知道不
你最好用连接来做那还好的多

5 楼

select yuwen=(select yuwen from 1 order by yuwen),shuxue=(select shuxue from 1 order by shuxue),yingyu=(select yingyu from 1 order by yingyu) from 1;
本身就有语法错误,查询就通不过,多条查询不可以用"=".
默认情况下是升序查询,如果降序查询要用DESC.
如果不是查询全部信息,显示前面的用Top,按百分比显示用Percent.

我来回复

您尚未登录,请登录后再回复。点此登录或注册