TOP n [PERCENT] ,返回前面几条记录或几个百分比的记录。排列的顺序可以使用ORDER BY子句来指定。譬如找到成绩前10名的学生姓名:
SELECT TOP 10 姓名 FROM 学生 ORDER BY 成绩
如果您没有包含ORDER BY子句,查询将由学生表返回任意的10个记录。
TOP不在相同值间作选择,如果第10及第11的成绩是相同的,查询将返回11个记录。
您可使用PERCENT来设定前面几个百分比的记录,譬如譬如找到成绩前10%的学生姓名:
SELECT TOP 10 PERCENT 姓名 FROM 学生 ORDER BY 成绩
让我们看一个在ASP程式中使用这个SQL指令的例子。
可以利用Distinct找出不重复的记录,譬如ASP程式rs7.asp如下,[Insert Into 产品(代号,名称) Select Distinct 代号,名称 From 产品 where 代号 ='C2000'] 使用Distinct与Insert Into新增代号为C2000的记录:
<%
'Distinct 代号,名称只判断代号,名称是否相同, 相同者只加一条记录
sql = "Insert Into 产品(代号,名称) Select Distinct 代号,名称 From 产品 where 代号 ='C2000'"
Set a = conn1.Execute(sql)
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * from 产品 where 代号 ='C2000'"
rs3.Open sql,conn1,1,1,1
%>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">代号</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">名称</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">价格</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">数量</FONT></TD>
</TR>
<% Do while not rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("代号")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("名称")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("价格")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("数量")%></TD>
</TR>
<%
rs3.MoveNext
Loop
rs3.Close
%>
</TABLE>
WHERE
WHERE寻找FROM中的表符合特定条件的资料记录,WHERE 使用在SELECT、UPDATE、或DELETE表达式。
如果SELECT查询中没有指定WHERE子句,将返回表中所有的资料。如果在SELECT查询多个表,且没有使用WHERE子句、或JOIN 子句的话,查询结果为多个表资料的乘积。
WHERE设定特定的条件,譬如:
FROM 产品 WHERE 分类 = '电脑':表示选择 [分类] 为 [电脑] 的 [产品]
WHERE 价格 Between 1000 And 5000:表示价格介于1000至5000之间 。
一个WHERE子句,最多可包含40个运算式,运算式之间由AND或OR等逻辑运算子相连结。
设定特定的条件时,依照字段类型,前后加不同的符号,譬如:
文字:前后加单引号,譬如WHERE 分类 = '电脑'。
数字:前后不加符号,譬如WHERE 数量 > 100。
日期:前后加#号,譬如WHERE 日期 = #5/15/99#。
WHERE可以使用下面的BETWEEN、LIKE、IN运算子。
 
2/2 首页 上一页 1 2 |