当前位置:首页>综合>正文

excel数据库,如何提取想要的数据 如何从数据库中提取数据

2023-06-21 01:58:45 互联网 未知 综合

 excel数据库,如何提取想要的数据 如何从数据库中提取数据

excel数据库,如何提取想要的数据?

1、打开源数据文件,把首行中的对应的数据,复制行到空白位置。

  2、选中J2单元格,单击编辑栏中的"插入函数“,如图示。

  3、弹出”插入函数“对话框,设置其类别为”逻辑“,并选择列表框中的IF选项。然后确定。

  4、在弹出的”函数参数“对话框中,设置Logical_test参数为”I2=“”,将Value_if_true设置为“”,即空白内容。

  将Value_if_false参数框中输入“VLOOKUP(I2,A2:B2846,2),然后确定。
  5、选中J2单元格,注意是J2,不是I2哦.(I2是输入证券代码的地方),鼠标移动到单元格右下角,出现十字光标时,按住鼠标左键向右拖动到O2单元格。如图

  6、这个时候会发现原来源数据中的C2-G2单元格中的内容就会自动填充到K2-O2单元格中。这个时候,如需要的数据是按源数据中的数据从上 到下排列的,就可以不用修改了。直接重复第5步中的方法,把J2-O2每个单元格下拉填充就完成了。如图示,先把需要的数据列复制到I列中,然后依次下拉 填充。

  7、但有时候,需要的不是按照源数据中的排序,比如说,现用的这个例子,如果在I3中,输入000002就会出错。如图示。

  8,这是j3中的函数为VLOOKUP(I3,A3:B2847,2)),也就是搜索从A3到B2487区域中 的内容。没有包含A2,所以我们输入000002在源数据中找不到。所以使用这个方法前,要先对需要的数据按源数据进行排序。不然,是不准确的。


如何从数据库中提取数据

1、查询数据库(test)中的所有表名的方法:

SELECT name
FROM [test]..sysobjects where xtype=U
********
补充:
如果有的表不存在【时间】那就用下面的语句直接把含有【时间】列的表名找到:
SELECT d.name
FROM [test]..syscolumns a
inner join [test]..sysobjects d on a.id=d.id and d.xtype=U and a.name=时间
**********

2、遍历这个表名取出数据插入到另外的数据库中(SqlServer中的遍历方法我不是很清楚,给你提供个思路,oracle的话我就能把程序写出来了O(∩_∩)O~)。

如:遍历结果存储到数据库test2中
insert into [test2]..遍历出的表名 select * from 遍历出的表名 where datediff(day,2009-08-07,时间)>0

重复上面的sql语句指导讲数据库test中的表名完全遍历完为止。

*************************************************************
补充:我试验了一下下面把实验代码给你(建一个存储过程)
create proc test as
--定义游标变量
declare cur1 cursor for
SELECT d.name
FROM [test]..syscolumns a
inner join [test]..sysobjects d on a.id=d.id and d.xtype=U and a.name=时间
--定义临时变量
declare @tmp varchar(1000)
--定义sql字符串
declare @strsql varchar(4000)
--打开游标
open cur1
--读取第一条数据,也就是第一个表名
fetch next from cur1 into @tmp
--是读完
while(@@fetch_status = 0)
begin
--连接sql文
set @strsql=insert into [test2].. @tmp select * from @tmp where datediff(day, char(39) 2009-08-07 char(39) ,时间)>0
--执行这个sql
exec(@strsql)
--读取下一条数据
fetch next from cur1 into @tmp
end
--关闭游标
close cur1
--摧毁游标所占资源
deallocate cur1
*************************************************

---
以上,希望对你有所帮助。