update table_a a set a.strname=(select b.strname from table_b b where a.lat=b.lat and a.lon=b.lon);
解决方案 »
- ORA-01012: not logged on
- 两个简单的sql
- sqlldr自定义函数调用问题
- 如果表里有LONG字段怎么样用一条SQL语句去选出数据直接插入另外一个表中?
- oracle插入大量数据后不能插入的问题,100分求解
- 启动oracleOrahome81managementserver 服务报错
- empty_clob()方法怎么用
- 关于 Oracle 内存使用的问题
- 我想把当前服务器上的时间(包括日期和时间)做为一个值插入到一张表中的一个date类型的字段中,而且还可以把这个数据在网页上显示出来(包括
- oracle 函数里如何根据传递进来的参数声明变量
- 应该是一个比较简单的SQL语句,大家帮个忙
- 存储过程问题,高分
select a.nid,b.strname,a.lat,a.lon
from a,b
where a.lat=b.lat and a.lon=b.lon;
set echo off
set feedback off
set heading off
set linesize 你想要的长度
set pagesize 一页的行数
spool c:\reslut.txt
SELECT A.NID||','||B.STRNAME||','||A.LAT||','||A.LON
FROM A,B
WHERE (A.LAT = B.LAT) AND (A.LON = B.LON);
spool offrelut.txt 文件就是你要的内容,是不是这个意思
update table_a a set a.strname=(select b.strname from table_b b where a.lat=b.lat and a.lon=b.lon);
不好用啊。出错: 单行子查询反回多于一个行
set a.strname=(select b.strname from table_b b where a.lat=b.lat and a.lon=b.lon)
where a.lat=b.lat and a.lon=b.lon;try it.
和
update table_a a
set a.strname=(select b.strname from table_b b where a.lat=b.lat and a.lon=b.lon)
where a.lat=b.lat and a.lon=b.lon;
好像应该效果一样的吧
set a.strname=(select b.strname from table_b b where a.lat=b.lat and a.lon=b.lon)
where a.lat in (select b.lat from table_b b) and a.lon in (select b.lon from table_b b);it is true.
set strname = (select distinct b.strname
from b
where a.lat = b.lat
and a.lon = b.lon)
where a.nid in (select distinct b.nid
from b
where b.lat = a.lat
and b.lon = a.lon);
where (b.lat,b.lon) in (select lat,lon from a);
如果有
可以这样。
update table_a a set a.strname=(select b.strname from table_b b where a.nid=b.nid);
我的b表就是没有nid的。没有关连的。 请问怎么处理???
1 前门 33.1 33.2
表b字段 strname lat lon
游9(前门-蟒山):前门 33.1 33.2都是真实字段。
请帮帮忙。我已经用java写了一个更新程序,但程序速度很慢,1个小时只能更新1000条记录。数据库记录巨大。
还有没有办法?
也就是说B表中有lat与lon重复的记录,但记录又不完全一样
A表示例:
nid(自动id) strname lat lon
1 前门 33.1 33.2
查找到B表重复记录如下:
strname lat lon
游9(前门-蟒山):前门 33.1 33.2
游9(蟒山-前门):前门 33.1 33.2
其实只要B表查出的任何一条记录,update进入a就行了。比面上面那两条重复记录,只要有一条更新入A表就行了。
用什么方法呢?熟悉mssql12000。 oracle现在刚学。请多多指教。
那就这样
update table_a a set a.strname=(select distinct b.strname from table_b b where a.lat=b.lat and a.lon=b.lon);
游9(前门-蟒山):前门 33.1 33.2
游8(蟒山-后门):后门 33.1 33.2
就不能用子查询方式更新
update table_a a set a.strname=(select distinct b.strname from table_b b where a.lat=b.lat and a.lon=b.lon);
试试
游9(前门-蟒山):前门 33.1 33.2
游9(蟒山-前门):前门 33.1 33.2 怎么实现??
---------------------------------------- ---------- ----------
小钱门 33.1 33.2
大钱们 10.1 10.2SQL> select * from bb;STRNAME LAT LON
---------------------------------------- ---------- ----------
游9(前门-蟒山):前门 33.1 33.2
游9(蟒山-前门):前门 33.1 33.2
大小钱么 10.1 10.2
小大钱么 10.1 10.2SQL> update aa a set a.strname=(select max(b.strname) from bb b where a.lat=b.lat and a.lon=b.lon gr
oup by b.lat,b.lon);2 rows updated.SQL> select * from aa;STRNAME LAT LON
---------------------------------------- ---------- ----------
游9(蟒山-前门):前门 33.1 33.2
小大钱么 10.1 10.2