SQL如何在查询结果里再次查询?

例如:select * from 表名 where 等级 = 30
查询出来的结果有100条,然后我要在这100条里再查询,查询条件为:金币 = 100,这种情况语句怎么写?

做法:可以使用括号“(select查询子句)"套嵌一个查询结果。语法格式:select columnlist... from (select子句) table_name where 。注意:”)“ 后面需要给查询结果指定一个名称 table_name,名称不要与其他列名称相同,增加SQL语句的可读性。

拓展:

1、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名

2、SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

3、结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-26

可以使用括号“(select查询子句)"套嵌一个查询结果。

语法格式:select columnlist... from (select子句) table_name where ...

注意:”)“ 后面需要给查询结果指定一个名称 table_name,名称不要与其他列名称相同,增加SQL语句的可读性。

以下为SQL在查询结果里再次查询实例:

1、原表格customer数据:

2、id > 300的查询结果如图:

select id as 'id',fname as 'fname',lname as 'lanme' from customer where id > 300

3、在查询结果中筛选fname以'j'开头的数据:

select id as 'id',fname as 'fname',lname as 'lanme' from (select id,fname,lname from customer where id > 300) b where fname like 'j%'

注:大多数据库管理系统查询语句是忽略字母大小写,所以上述代码 like 'j%',查询结果包含大写J开头的数据,以上示例为MS SQL server 2005环境。

本回答被网友采纳
第2个回答  2019-05-16

sqlserver : 在在外面套一层

select* from (select * from 表名 where 等级 = 30) where  金币 = 100;

oracle  : 因为创建虚拟表比较方便

with t  as

(select * from 表名 where 等级 = 30)

select *from   t where   金币 = 100;

此问题由51今日论文网解答