子查询
在一个SELECT、SELECT...INTO、INSERT...INTO、DELETE、或UPDATE 表达式中,可以包括SELECT表达式,这个SELECT表达式叫做子查询(sub query)。
您可以使用三种语法建立子查询:
表达式 [ANY | ALL | SOME] (子查询)
表达式 [NOT] IN (子查询)
[NOT] EXISTS (子查询)
子查询的一个SELECT表达式,与一般SELECT表达式的语法相同,必须包括在括号之中。
您可以使用子查询来替代SELECT表达式的运算式,或在WHERE或 HAVING子句中的运算式。
关键字ANY和SOME的意义相同,用来选择符合子查询的任何记录的比较条件。譬如下例将返回产品中单价大于订单中任何数量大于100的记录:
SELECT * FROM 产品
WHERE 单价 > ANY
(SELECT 单价 FROM 订单
WHERE 数量 > 100)
关键字ALL,用来选择符合子查询的所有记录的比较条件。
譬如在上例中将ANY改为ALL,将返回产品中单价大于订单中所有数量大于100的记录。
关键字IN 述语来撷取在主查询中且只有在子查询之中包含相同值的某些记录。下列范例会返回以百分之 25 或更高的折扣卖出的所有产品:
关键字IN,用来选择在子查询之中的记录。譬如下例将返回订单中数量 > 100的记录:
SELECT * FROM 产品
WHERE 产品代号 IN
(SELECT 产品代号 FROM 订单
WHERE 数量 > 100)
相反地,关键字NOT IN,用来选择不在子查询之中的记录。
在true/false比较中,可以使用EXISTS关键字,来决定子查询是否会返回任何的记录。
关键字ALL的ASP例子,譬如ASP程式rs24.asp如下,[SELECT 姓名,科目,分数 From 考试 Where 科目 = '算术' and 分数 >= All (SELECT 分数 From 考试 Where 科目='算术' and 姓名='张三')] 找出分数大于或等于张三的算术考试的算术记录:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ=" & Server.MapPath("ntopsamp.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
Set rs2 = Server.CreateObject("ADODB.Recordset")
SqlStr = "SELECT 姓名,科目,分数 From 考试 Where 科目 = '算术' and 分数 >= All (SELECT 分数 From 考试 Where 科目='算术' and 姓名='张三')"
rs2.Open SqlStr,conn1,1,1
在ADO使用SELECT语法六
时间: 2024-09-24 21:05:57
在ADO使用SELECT语法六的相关文章
ADO使用SELECT语法二
接上一篇文章:WHERE可以使用下面的BETWEEN.LIKE.IN运算子.Between...AndBetween...And判断表达式的值是否落在指定的范围之中.语法为:expr Between value1 And value2 表示如果expr的值介于value1和value2之间,则Between...And运算子会返回True:否则它会返回False. 您也可以加上逻辑运算 Not expr Between value1 And value2,来判断相反的条件,即expr落在valu
在ADO使用SELECT语法三
接上一篇文章:ORDER BYORDER BY子句,可以设定排序的字段.在一个SQL表达式之中,ORDER BY子句通常放置于最后. 若要以递减顺序来进行排序(Z~A,9 ~0),须于您要递减排序的每一字段的尾部加DESC字.譬如:SELECT 姓名FROM 员工ORDER BY 工资 DESC, 年龄 表示[工资] 字段以递减顺序来进行排序,[年龄] 字段以递增顺序来进行排序. ORDER BY子句中排序的字段,不可以包含MEMO字段类型或OLE对象类型,否则会发生错误. 在ORDER BY子
在ADO使用SELECT语法五
JoinJOIN连接组合两个表中的字段记录,包括三种:INNER JOIN运算式:连接组合两个表中的字段记录.LEFT JOIN运算式:连接组合两个表中的字段记录,并将包含了LEFT JOIN左边表中的全部记录.RIGHT JOIN运算式:连接组合两个表中的字段记录,并将包含了RIGHT JOIN右边表中的全部记录.INNER JOIN设定两个表相关连的运算式,以连接组合两个表中的字段记录.INNER JOIN语法如下:FROM 表1 INNER JOIN 表2 ON 表1.字段1 比较运算子
在ADO使用SELECT语法四
HAVING HAVING使用于SELECT 表达式中,筛选已经GROUP BY统计的记录.在GROUP BY统计记录后,HAVING将筛选与HAVING子句中条件相吻合的记录.语法如下:SELECT fieldlistFROM tableWHERE selectcriteriaGROUP BY groupfieldlist[HAVING groupcriteria].groupcriteria表示决定应筛选的统计记录. HAVING与WHERE相类似,是用来决定选取哪些记录.当使用GROUP
SQL select 语法
select|语法 SQL 里面最常用的命令是 SELECT 语句,用于检索数据.语法是: SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [, ...] [ INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table ] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP B
sql 表内容复制 INSERT INTO Select语法
sql 表内容复制 insert into select语法 insert into 新表(字段1,字段2,.......) select 字段1,字段2,...... from 旧表 mysql教程_connect("localhost","root","123456"); mysql_select_db("db_test"); mysql_query("set names 'utf8'"); $quer
MySQL进阶SELECT语法篇_Mysql
MySQL中SELECT语句的基本语法是: SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY] [DISTINCT|DISTINCTROW|ALL] select_list [INTO {OUTFILE|DUMPFILE} 'file_name' export_options] [FROM table_references [WHERE where_definition] [GROUP BY co
在ADO使用SELECT语法一
SELECT表达式接着,让我们看看SELECT表达式,SELECT用来在表中寻找符合特定条件的记录,语法如下:SELECT [关键字] { * | 表名称.* | [表名称.]字段名称1 [AS 别名1] [, [表名称.] 字段名称2 [AS 别名2] [, ...]]}FROM 表运算式 [, ...] [IN 外部表][WHERE... ][GROUP BY... ][HAVING... ][ORDER BY... ][WITH OWNERACCESS OPTION]关键字:可以用来限制返
jsp基础语法 六 jsp+jdbc访问数据库
学习过了jsp基础语法以及HTML和javascript的用法之后,jsp+jdbc连接数据库开发动态WEB网页就可以实现了. 对于学过java SE的同学来说,数据库的操作并不陌生,如果有忘记的或者不会的可以到http://zhaoyuqiang.blog.51cto.com/6328846/1127658 学习. jsp中的数据库连接又是如何呢? 怎样才能利用上我们学过的HTML和javascript的知识呢? 这就是我们这一篇文章的学习内容----jsp+jdbc访问数据库. 我们就以一