sql题中的种种
在做sql题时,我们最怕遇到条件复杂的查询语句,因为大多时候需要两三个子查询来实现,
而大多数同学,可以说都比较怕子查询的,以前我也被这些题目弄的云里雾里的,
不过做多了这类的题目后发现,其实也有一定规律,我们可以总结一套适合自己的方法来处理,
下面时我对该类题目的处理方法:
有购物表如下:
题目: 查询购物商品类型不只一种的购物者的信息。
我将题目拆分如下:
则可得出两条查询语句:
<1>select * from 购物信息表 where 购物者 in……
<2>select 购物者 from 购物信息表 group by 购物者 having count(*)>=2
将语句<2>加到语句<1>后即可得出一种正确答案。
将语句从外向里剖析,拿出简单的查询语句,然后再组合。
当然我这里的题目,是我临时想的可能还比较简单,我有见过这样的语句
查询……的……的……的……的……。可以说可能有两三个或更多的子查询,那就需要有一个好的方法了。
相关文档:
我们使用oracle的人都知道可以通过rownum伪列得到查询结果序列前面的指定的行,为了下面更好的进行说明问题,我们先来创建一个数据表table1:
create table table1
(AAA integer primary key,
BBB varchar(30));
然后在table1中插入9条数据:
insert into table1 values (8, 'good');
insert into table1 values (7 ......
在某些场合下,存储过程或触发器里的SQL语句需要动态生成。Oracle的DBMS_SQL包可以用来执行动态SQL语句。本文通过一个简单的例子来展示如何利用DBMS_SQL包执行动态SQL语句:
DECLARE
v_cursor NUMBER;
v_stat NUMBER;
& ......
General Overview
FeatureSQL Server 2008 (RC0)MySQL 5.1/6PostgreSQL 8.3/PostGIS 1.3/1.4
OS
Windows XP, Windows Vista, Windows 2003, Windows 2008
Windows XP, Windows Vista, (haven't tested on 2008), Linux, Unix, Mac
Windows 2000+ (including Vista and 2003, haven't tested on 2008), Linux, Unix, Ma ......
配置使用 SQL Server提供程序
<configuration>
<system.web> <-- 更改提供程序配置: -->
<membership defaultProvider="AspNetSqlProvider" />
</system.web>
<membership> <--配置提供程序 -->
<prov ......
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......