首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL,SQL,SQL!求一sql语句。解决思路

2012-02-10 
SQL,SQL,SQL!!!求一sql语句。。。表1idbigsortsortcity1离心机低速自动平衡离心机NULL2离心机二手空分设备NUL

SQL,SQL,SQL!!!求一sql语句。。。
表1
id bigsort sort city
1离心机 低速自动平衡离心机 NULL
2离心机 二手空分设备 NULL
3离心机 塑料金属分离设备 NULL
4压滤设备 机械及行业设备 NULL
5压滤设备 化工设备压滤设备 NULL
6压滤设备 白酒蒸馏设备 NULL
7分离机 超临界CO2萃取设备 NULL
8分离机 立体分离机 NULL
9分离机 沙石分离机 NULL

表2
id city
1 北京
2 上海
3 南京


通过sql,得到下面的结果:即不同的分类下按照顺序插入表2的城市,


id bigsort sort city
1离心机 低速自动平衡离心机 北京
2离心机 二手空分设备 上海
3离心机 塑料金属分离设备 南京
4压滤设备 机械及行业设备 北京
5压滤设备 化工设备压滤设备 上海
6压滤设备 白酒蒸馏设备 南京
7分离机 超临界CO2萃取设备 北京
8分离机 立体分离机 上海
9分离机 沙石分离机 南京


按bigsort的种类来分别插入各个城市。分数不多,希望大虾们多多支持哈。



[解决办法]
--如果你两表ID都是序列增加.不出现断号等.
update tb1 set city = tb2.city
where (tb1.id - 1) % 3 = tb2.id - 1
[解决办法]

SQL code
create table tb1(id int,city varchar(10))insert into tb1 values(1 , null)insert into tb1 values(2 , null)insert into tb1 values(3 , null)insert into tb1 values(4 , null)insert into tb1 values(5 , null)insert into tb1 values(6 , null)insert into tb1 values(7 , null)insert into tb1 values(8 , null)insert into tb1 values(9 , null)create table tb2(id int,city varchar(10))insert into tb2 values(1 ,'北京')insert into tb2 values(2 ,'上海')insert into tb2 values(3 ,'南京')goupdate tb1 set city = tb2.city from tb1 , tb2where (tb1.id - 1) % 3  = tb2.id - 1select * from tb1drop table tb1 , tb2/*id          city       ----------- ---------- 1           北京2           上海3           南京4           北京5           上海6           南京7           北京8           上海9           南京(所影响的行数为 9 行)*/
[解决办法]
--如果你的序号不是自增一,出现断号
--sql 2000用子查询.
SQL code
create table tb1(id int,city varchar(10))insert into tb1 values(1 , null)insert into tb1 values(2 , null)insert into tb1 values(3 , null)insert into tb1 values(4 , null)insert into tb1 values(5 , null)insert into tb1 values(6 , null)insert into tb1 values(7 , null)insert into tb1 values(8 , null)insert into tb1 values(9 , null)create table tb2(id int,city varchar(10))insert into tb2 values(1 ,'北京')insert into tb2 values(2 ,'上海')insert into tb2 values(3 ,'南京')goupdate tb1 set city = tb2.city from tb1 , tb2,(select t.* , px=(select count(1) from tb1 where id < t.id) from tb1 t) tb3,(select t.* , px=(select count(1) from tb2 where id < t.id) from tb2 t) tb4where tb1.id = tb3.id and tb2.id = tb4.id and(tb3.px - 1) % 3  = tb4.px - 1select * from tb1drop table tb1 , tb2/*id          city       ----------- ---------- 1           北京2           上海3           南京4           NULL5           上海6           南京7           NULL8           上海9           南京(所影响的行数为 9 行)*/ 

热点排行