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今日论文网解答

SQL如何在查询结果里再次查询?
做法:可以使用括号“(select查询子句)"套嵌一个查询结果。语法格式:select columnlist... from (select子句) table_name where 。注意:”)“ 后面需要给查询结果指定一个名称 table_name,名称不要与其他列名称相同,增加SQL语句的可读性。拓展:1、SQL语言,是结构化查询语言(Structured Query Lan...

SQL语句,怎么用查询的结果,进行再查询?
在结果集1中再查询

SQL 语句怎么重查询结果中再次查询对应的表
第一步,从表B查询name_id字段的值 第二步,根据第一步的结果,从表A查询name字段的值 第三步,通过SQL来实现,语句如下:select name from Awhere name_id in( select name_id from B where type < '002')以上希望能帮助到你 ...

SQL在查询结果中再次查询(Sqlite3)
选接近的值 可以利用order排序来选择。select *from sizeweight where abs(external_diameter-?)=( select min(abs(external_diameter-?)) as nearst_etd from sizeweight ) order by abs(thickness_mm-?) ASC limit 1试下这个

sql 根据查询结果进行二次查询
Select B.from 【你的表】 A, 【你的表】 B Where A.[合同号] = 'a' and B.[住合同GUID] = A.[合同GUID]直接这样查询就行,得出的结果就是你要的数据

怎么样对结果集进行2次查询(SQL)
如果是sql server 的话,可以直接select * from (select 字段1,字段2 from 表 where 条件) where 条件

sql如何用查询结果做2次查询
select a,b from 表 where b='12345' group by a,b having count(a) > 1

SQL在查询结果中查询
在SQL Server中,可以使用表变量来存储查询的结果集,以便后续的在此结果集上进行新的查询。(当然,临时表也是一种方法)。先定义表变量(在变量名之后用table关键字说明定义表变量,然后跟表的具体字段定义):declare @tb table (ID integer, InTime datetime, ...)然后,将查询到的数据插入表变量:inse...

SQL如何把表一查询出来的多个ID结果继续查询表二中的数据?
那你的sql 改下就可以了 select * from [Rpe_case]where [id] in (select [id] from [Rpe_number] where ([daqujibie1] ='55' or [daqujibie2] ='55' or [daqujibie3] ='55' or [daqujibie] ='55' or [shengjibie] ='55' or [shijibie] ='55' or [qudaojibie] ='...

sql二次使用查询结果
t.分类,t.* from tableName t inner join (select 分类,max(更新时间) update_date from tableName group by 分类 ) b on (a.分类=b.分类 and a.更新时间=b.update_date)---以上语句如果更新时间不是date类型(可能是varchar)则请先将其转换为时间类型,否则结果可能不正确。

相似回答