怎么样把取出数据库的数据截取一部分,当数据少时又怎么用点点补充
怎么样把取出数据库的数据截取一部分,当数据少时又怎么用点点补充
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
*************************************************
---
以上,希望对你有所帮助。
你到底要干嘛哟,
数据库不能胡乱操作的,
可以采取筛选、添加操作提取你需要的数据
你都是怎么取数据的啊?SQL语句里可以灵活控制查询数据的过滤条件,不想看的就不看呗。比如想看10月份的数据,就把时间列的where条件,改成c_date between to_date('2016-10-1','yyyy-mm-dd') and ?to_date('2016-11-1','yyyy-mm-dd') ;
答:如果你不知道改动的是那张表,那要找到估计危险。详情>>
答:入侵检测模式匹配模式匹配就是将收集到的信息与已知的网络入侵和系统误用模式数据库进行比较,从而发现违背安全策略的行为详情>>
答:它具有主动性、参与性和操作性,人们自己主动到网上数据库查找所需的信息,网络信息的流动是双向互动的详情>>