同样一条语句执行的结果不同

CCooles 2016-12-27 01:53:57
SELECT T.T#, T.TNAME, CAST(AVG(O.score)AS DECIMAL(18,2))AS AVG_SCORE
FROM Teacher AS T, Course AS C, SC AS O
WHERE T.T# = C.C# AND C.C# = O.C#
GROUP BY T.T#, T.Tname
ORDER BY AVG_SCORE DESC;


引用


select m.T# , m.Tname , cast(avg(o.score) as decimal(18,2)) avg_score
from Teacher m , Course n , SC o
where m.T# = n.T# and n.C# = o.C#
group by m.T# , m.Tname
order by avg_score desc


引用


这是网上搜的sql题目,第一条我自己写的跟答案一样的,但是结果不一样。

...全文
216 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCooles 2016-12-29
  • 打赏
  • 举报
回复
引用 6 楼 baidu_36457652 的回复:
你确定 数据死一样的 结果 不一样? 有点怪啊
知道原因了,WHERE 子句错了。。
CCooles 2016-12-29
  • 打赏
  • 举报
回复
引用 7 楼 Tiger_Zhao 的回复:
语句统一格式化后,用文本比较工具比一下就能发现差异 第一句:WHERE m.t# = n.t# 第二句:WHERE t.t# = c.c#
原来如此。。
Tiger_Zhao 2016-12-29
  • 打赏
  • 举报
回复
语句统一格式化后,用文本比较工具比一下就能发现差异
第一句:WHERE m.t# = n.t#
第二句:WHERE t.t# = c.c#
  • 打赏
  • 举报
回复
你确定 数据死一样的 结果 不一样? 有点怪啊
CCooles 2016-12-29
  • 打赏
  • 举报
回复
引用 2 楼 baidu_36457652 的回复:
仔细看下原数据吧。两个是一样的语句
但是列顺序不一样
CCooles 2016-12-29
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
数据不一样。 你把你的数据,和语句都贴上来 , PS:数据要 insert 的,语句要文本的
sc表 create table SC(S# varchar(10),C# varchar(10),score decimal(18,1)) insert into SC values('01' , '01' , 80) insert into SC values('01' , '02' , 90) insert into SC values('01' , '03' , 99) insert into SC values('02' , '01' , 70) insert into SC values('02' , '02' , 60) insert into SC values('02' , '03' , 80) insert into SC values('03' , '01' , 80) insert into SC values('03' , '02' , 80) insert into SC values('03' , '03' , 80) insert into SC values('04' , '01' , 50) insert into SC values('04' , '02' , 30) insert into SC values('04' , '03' , 20) insert into SC values('05' , '01' , 76) insert into SC values('05' , '02' , 87) insert into SC values('06' , '01' , 31) insert into SC values('06' , '03' , 34) insert into SC values('07' , '02' , 89) insert into SC values('07' , '03' , 98) go
CCooles 2016-12-29
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
数据不一样。 你把你的数据,和语句都贴上来 , PS:数据要 insert 的,语句要文本的
create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)) insert into Course values('01' , N'语文' , '02') insert into Course values('02' , N'数学' , '01') insert into Course values('03' , N'英语' , '03') create table Teacher(T# varchar(10),Tname nvarchar(10)) insert into Teacher values('01' , N'张三') insert into Teacher values('02' , N'李四') insert into Teacher values('03' , N'王五') create table SC(S# varchar(10),C# varchar(10),score decimal(18,1)) insert into SC values('01' , '01' , 80) insert into SC values('01' , '02' , 90) insert into SC values('01' , '03' , 99) insert into SC values('02' , '01' , 70) insert into SC values('02' , '02' , 60) insert into SC values('02' , '03' , 80) select m.T# , m.Tname , cast(avg(o.score) as decimal(18,2)) avg_score from Teacher m , Course n , SC o where m.T# = n.T# and n.C# = o.C# group by m.T# , m.Tname order by avg_score desc SELECT T.T#, T.TNAME, CAST(AVG(O.score)AS DECIMAL(18,2))AS AVG_SCORE FROM Teacher AS T, Course AS C, SC AS O WHERE T.T# = C.C# AND C.C# = O.C# GROUP BY T.T#, T.Tname ORDER BY AVG_SCORE DESC; 两列的顺序就是不一样
  • 打赏
  • 举报
回复
仔细看下原数据吧。两个是一样的语句
卖水果的net 版主 2016-12-27
  • 打赏
  • 举报
回复
数据不一样。 你把你的数据,和语句都贴上来 , PS:数据要 insert 的,语句要文本的

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧