sql中如何为查询出来的表起别名呢,而且能根据查询后的表别名就查找

SELECTTOP1000[id],[Type],[Student],[Score]=casewhen[ReExam]>[Score]then[ReExam]else[S... SELECT TOP 1000 [id],
[Type],
[Student],
[Score]=
case
when [ReExam]>[Score] then [ReExam]
else [Score]
end ,
[ExamTime],
[AddUser],
[IsLock],
[Class]
FROM [Test].[dbo].[StudentExam] A
where A.type=0
这是查询出来的数据,但是还有个条件是[Score]>80 AND [Score]<95
怎么查啊
不能创建视图,只能用sql语句查找
展开
 我来答
百度网友faadf46
高粉答主

2019-12-17 · 说的都是干货,快来关注
知道答主
回答量:4556
采纳率:0%
帮助的人:67.9万
展开全部

1、查看数据库中的表信息。

2、首先看列的别名:SELECT column_name AS alias_name FROM table_name。

3、再来看表的别名的写法:SELECT column_name(s) FROM table_name AS alias_name。

4、那么在表的别名可以写在列名那。

5、也可以写在条件语句中。

注意事项:

SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。

穿山小甲
推荐于2017-11-25
知道答主
回答量:8
采纳率:0%
帮助的人:9850
展开全部
其别名的话 用AS 关键字, 比如 select * from table1 as newtable
这样就可以了。。望采纳
追问
起别名不是重点,重点在我怎么查数据
追答
嗯 这个问题问的很好 你可以给它起一个临时表名 然后 再去用那个临时表名  就OK了,比如说:http://www.csharpwin.com/dotnetspace/8264r5883.shtml
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-07-23 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5096万
展开全部
你的要求正是视图的作用,创建个视图吧
----------
ls给的答案跟视图是一个效果,你要求的结果恐怕实现不了
首先内部别名要求结果集1000条数据,外部再加入where筛选条件肯定要低于这个数量
更多追问追答
追问
数据条数这个可以更改的,不一定就要是1000条
追答

那就照着ls的改改数量呗

select top 1000 * from (
SELECT TOP 5000 [id],
 [Type],
 [Student],
 [Score]=
   case
  when [ReExam]>[Score] then [ReExam]
  else [Score]
   end ,
   [ExamTime],
   [AddUser],
   [IsLock],
   [Class]
  FROM [Test].[dbo].[StudentExam] A
  where A.type=0
) aaaaa
where [Score]>80 AND [Score]<95
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cf38862
2013-07-23 · 超过77用户采纳过TA的回答
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:139万
展开全部
SELECT * FROM (
SELECT TOP 1000 [id],
[Type],
[Student],
[Score]=
case
when [ReExam]>[Score] then [ReExam]
else [Score]
end ,
[ExamTime],
[AddUser],
[IsLock],
[Class]
FROM [Test].[dbo].[StudentExam] A
where A.type=0
) AA WHERE AA.[Score]>80 AND AA.[Score]<95
追问
不对,结果跟其他俩一样的,都是有些记录没有了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2013-07-23 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:3929万
展开全部
select * from (
SELECT TOP 1000 [id],
[Type],
[Student],
[Score]=
case
when [ReExam]>[Score] then [ReExam]
else [Score]
end ,
[ExamTime],
[AddUser],
[IsLock],
[Class]
FROM [Test].[dbo].[StudentExam] A
where A.type=0
) aaaaa
where [Score]>80 AND [Score]<95

或者 as aaaaa
追问
不对这样查的数据有些是数据没有了
追答
你把top 1000去掉
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式