- ?
SQL数据库用存储过程批量更改某一个字段的值(单表也可以)
禹易蓉
展开
USE [aa] --其中aa是数据库库名
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--批量替换数据库所有相同字段的值,
--如果@Table值不为空,则只更新传入表该字段的值
--用法1:在查询分析器写入如示语句执行批量更改:BatchModify '字段名', '旧值', '新值', ''
--用法2:在查询分析器写入如示语句执行批量单表更改:BatchModify '字段名', '旧值', '新值', '表名'
Create Procedure [dbo].[BatchModify](
@Field nvarchar(40),--要替换值的字段
@OldValue nvarchar(50),--旧值
@NewValue nvarchar(50),--新值
@Table nvarchar(40)--待替换的表名
) as
begin
--字段、旧值、新值不能为空
if (@Field <> '') and (@OldValue <> '') and (@NewValue <>'')
begin
--传入表名不为空,则更新该表的该字段值
if @Table <>''
begin
Exec('Update ' + @Table + ' Set ' + @Field + ' = ''' + @NewValue +
''' Where ' + @Field + ' = ''' + @OldValue + '''')
Print '更改单个表的字段值成功!'
end
else
begin
--使用游标进行批量更新
Declare @TableTemp nvarchar(40)
--Declare @ID Int
Declare BatchMod Cursor For
--找出字段所在表的ID
Select T.[Name] From SysColumns C Inner Join SysObjects T
On C.ID = T.ID Where (C.[Name] = @Field) and (T.XType = 'U')
Open BatchMod
Fetch Next From BatchMod Into @TableTemp
While @@FETCH_STATUS = 0
begin
--根据表ID找出表名
--Select @TableTemp = [Name] From SysObjects Where (ID = @ID)
--执行批量修改
Exec('Update ' + @TableTemp + ' Set ' + @Field + ' = ''' + @NewValue +
''' Where ' + @Field + ' = ''' + @OldValue + '''')
--循环,抓出下一条
Fetch Next From BatchMod Into @TableTemp
end
--关闭、释放游标
Close BatchMod
Deallocate BatchMod
Print '批量更改数据库中所有表的字段值成功!'
end
end
else
begin
Print '字段、旧值或者新值没有输入!请检查!'
end
end
- ?
SQL2008数据库设置自动备份
士萧
展开
一、上一期我们分享了SQL2000数据库如何设置自动备份,这期我们再来分享下SQL2008数据库如何设置自动备份
二、自动备份设置流程
1、打开SQL Server mangerment studio,如图:
2、维护计划向导
3、计划命名及计划设置,“更改”按钮可设置计划
4、选择维护任务。“清除维护任务”是要将一定时间前的备份文件删除,以释放磁盘空间
5、可调整维护计划执行的顺序
6、选择要备份的数据库,指定备份目录,备份文件扩展名,是否验证备份完整性等
7、清除维护任务:删除文件的类型、目录、文件扩展名、文件保留时间等
8、默认即可
9、完成
10、可查看、编辑作业
11、与SQL2000一样,2008也必须启用代理服务(启动模式请改为自动),如下图:
三、后记
当然,我们首先要保证的是服务器在设置自动备份的时间点没有关机,SQL相关服务正在运行,才能实现自动备份,这两点请注意。感谢关注!
- ?
SQL2000数据库置疑的修复
队医
展开
一、SQL2000体积小、安装速度快,成熟稳定,至今仍有不小的用途;但是相比较于2005和2008,有时突然断电或磁盘问题可能导致出现“置疑”的情况机率要大一些,此时我们无法读取数据;如果有备份,直接还原即可;如果没有备份,那就只能修复了;置疑修复后不能完全保证数据的准确性,有可能部分数据会丢失。
二、注意事项
1、千万不要对数据库进行分离操作;
2、建议停掉SQL服务,把置疑的数据库备份一份。
三、置疑修复步骤
1、假设原库名为DB,新建一个库名为DB1(不要和DB在一个目录下);
2、停止SQL服务;
3、将置疑库DB重命名为DB1,覆盖DB1;
4、启动SQL服务,此时在企业管理器中DB1仍为置疑,先不用管;
5、执行下面的语句,注意修改数据库名称:
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='DB1'
Go
sp_dboption 'DB1', 'single user', 'true'
Go
DBCC CHECKDB('DB1')
Go
update sysdatabases set status =28 where name='DB1'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption 'DB1', 'single user', 'false'
Go
6、此时DB1库恢复正常,但如若重启电脑,库仍为“置疑”;彻底解决的方法是再新建一个库,如DB11,将DB1库中的数据通过“导入导出工具”导到新库中。
四、SQL2000数据库设置自动备份请参考我之前的文章,为了最大限度的确保数据不被损坏,建议设置自动备份功能。
- ?
天天sql数据,数据分析师悲哀,出路在哪?网友:我还喜欢写sql呢
欢心
展开
在互联网公司有一种职位叫数据分析师,想必好多程序员朋友也是知道的,有时他们也会偶尔与程序员交流,主要是表结构方面的沟通,他们主要用到的技术是sql,也需要对公司的业务比较了解,数据库的表结构比较了解,他们平时的主要工作是:结合业务的情况,对数据库的数据进行提取,分析,出相应的结论与报告,方便运营人员了解情况,做出相应的营销策略与措施,他们也算是一个技术工种,但也有部分这方面的技术人员会感觉到比较枯燥!
最近就有一名数据分析师网友发出了这样的感慨,这名数据分析师认为天天写sql,天天查数据,感觉这是一个数据分析师的悲哀,自己非常迷茫,不知道以后出路在哪里?针对他的这种情况,让我们先来看看其他网友们都是什么看法吧!
美团员工:那你想干啥呢
上世是朵花:楼主网友主要是苦于工作的枯燥,感觉总是做重复工作。
网友二:安安静静的写sql不好吗?非得每周让你产出分析结论,然后指导业务工作你就开心了。。。
上世是朵花:不同工种都有好与不好,每个工种都会看到其他工种的好,自己工种的不好,真去体会一段时间就会发现没有自己想象的那么好!
网友三:我数据分析转运营了,结果除了照常写sql还要写ppt
上世是朵花:是的,运营人员要写ppt,与数据分析来比,技术难度降低了,但是另外的一种难!
网友四:建模和算法
上世是朵花:没错,这名网友提了一条路子,做算法的也经常用sql,可以结合自己的目前工作情况,适当向这方面靠拢,也许以后还有转算法工作的机会!
网友五:我是开发也天天查数据,心累
上世是朵花:理解,程序员嘛,查数据是正常事情!与数据分析想比,程序员除了写代码,做的事情也很杂的!
网友六:咱俩干的一样阿,但数据分析师,这名,我们叫应用运维。但我感觉运维都不是
上世是朵花:每个公司的职称不一样,这很正常,虽然干的活是一样,我还见过有的公司的运维要写python抓取脚本呢。
网友七:数据分析也分很多,具体工种差异大,薪资待遇也差很多
上世是朵花:没错,数据分析往深处研究也是很有价值的,有时一条有价值的策略能上公司的盈利情况成倍的增长。
网友八:我好想回到天天写SQL,现在最幸福的就是可以安安静静写sql
上世是朵花:看,有的人不喜欢,而有的人则向往,还是好好珍惜手头的事情,深挖其中的价值,让他变得有兴趣起来。
其实,楼主这样的感慨无非是觉得数据分析这样的工作没有技术含量,天天做着重复的工作,没有什么前途可言,这是一个比较错误的看法,因为他并没有看到这个行业的价值所在,在楼主的印象里,这个行业就是写sql代码,认为这是工作的核心,恰恰相反,写sql,提取数据只是一种手段,而不是目的,“数据分析”四个字拆开来看,整个工作是基于“数据”来进行,通过各种各样的sql对数据进行提取,这只是很小一部分工作,而真正的工作在于“分析”,这才是这个行业的核心,从对数据的分析能得出相应的策略,有时一条有价值的策略能给公司带来上亿的盈利,这才是这个工作的关键所在,如果这名楼主能看到这一点,就会认为自己的工作是很有价值的,而不会再觉得枯燥,从而工作起来就更有成就感了!
以上所有图片均来之互联网 大家好,我是“上世是朵花”。如果你有什么好的看法或者观点可以在评论区展现你的才华,互动交流,如果想进一步了解我,那就关注我吧!
- ?
怎么利用SQL语句查询数据库中具体某个字段的重复行
柯水风
展开
可用group by……having来实现。
可做如下测试:
1、创建表插入数据:
create table test(id int,name varchar(10))insert into test values (1,'张三')insert into test values (2,'李四')insert into test values (3,'张三')insert into test values (4,'王五')insert into test values (5,'赵六')
其中name是张三的有两行,也就是重复行。
2、执行sql语句如下:
select * from test where name in (select name from test group by name having COUNT(*)>1)
结果如图:
(本文内容由百度知道网友badkano贡献)
- ?
SQL语句之数据更新删除数据
乐正怡
展开
1、不在需要的数据,就要执行删除操作,删除语法如下:
DELETE FROM 表名称 [ WHERE 删除条件(s) ] ;
其中,WHERE子句里面,依然可以使用子查询进行操作。
范例:删除雇员编号是7566的雇员信息
DELETE FROM myemp WHERE empno=7566 ;
范例:删除雇员编号是7788、7902的雇员信息
DELETE FROM myemp WHERE empno=7788 OR empno=7902 ;
DELETE FROM myemp WHERE empno IN(7788, 7902) ;
注意:用了rollback回退操作!所以7566的数据还存在
范例:删除高于公司平均工资的雇员信息
DELETE FROM myemp WHERE sal>(SELECT AVG(sal) FROM myemp)
范例:删除全部记录
DELETE FROM myemp ;
一定要记住,在任何的系统之中,删除操作都属于极其危险的操作。实际上,一个稳定的系统,对于删除操作,都是具备一个逻辑删除和物理删除的两种方式:
◆ 物理删除:直接执行DELETE FROM,彻底从表中删除记录。
◆ 逻辑删除:增加一个逻辑的字段,例如:有一个flag字段,如果flag=1表示已经被删除,如果flag=0表示没有被删除。
如果真执行的是删除操作,那么,就相当于修改了flag字段的内容,同时在每次查询的时候,只需要增加一个WHERE限定条件(SELECT * FROM ... WHERE flag=1)。
【总结】
1、 更新操作,要比查询操作,更加的简单(语法都固定)。
2、 所有的更新操作,每次更新完成之后,都一定会返回更新的数据行数,如果没有更新,则返回0。
- ?
Excel剔除单列数据重复值的五种方法
郦映寒
展开
有时我们在操作数据时,需要剔除单列数据的重复值,下面为大家介绍Excel剔除单列数据重复值的五种方法,满足大家的日常需求。
方法一:菜单按钮
如下图,是本次操作的源数据。
单击“数据”选项卡--》“数据工具”功能区--》“删除重复项”,弹出“删除重复项”对话框,单击“确定”即可删除单列数据 重复值。如下图所示:
方法二:数据透视表法
依然使用上面的数据源,单击“插入”选项卡--》“表格”功能区--》“数据透视表”,出现如下图的提示框,这里我选择现有工作表 的C1单元格(大家根据需要可以选择新工作表),单击“确定”完成数据透视表的创建,如下图:
接着,勾选“姓名”前面的复选框,“姓名”字段就出现在《行》字段的框框里,如下图:
然后,我们对数据透视表的数据进行修饰,单击“行标签”所在的单元格,将单元格的文字改成“姓名”,然后单击数据透视表内的任意单元格,单击“数据透视表工具”--》“设计”选项卡--》“布局”功能区--》“总计”下的“对行和列禁用”按钮就完成了,如下图所示:
方法三:公式法
如图,在C1单元格输入如下公式,然后同时按Ctrl+Shift+Enter三个键结束,接着拖动输入公式单元格右下角的填充柄,完成此次不重复数据的筛选。
接着我们对公式进行逐步的讲解,首先,MATCH($A$1:$A$10,$A$1:$A$10,)=ROW($1:$10)表示查找A1至A10单元格在引用区域$A$1:$A$10的位置是否等于当前单元格行号所在的位置,如果相等,则说明该数据在这个区域中唯一
然后通过IF(MATCH())组合函数返回这个字段的行号,否则返回2^20=1048576,接着用SMALL函数对获取的行号进行升序排序,最后通过INDEX函数查找行号所在位置的值,&“”主要是为了容错处理,试想,如果数据都取完了,就剩下1048576的位置了,然后INDEX(A:A,1048576)=0,加个&“”则返回空文本。
方法四:SQL法
单击“数据”选项卡--》"获取外部数据"功能区--》现有连接,打开“现有连接”对话框,单击左下角的“浏览更多”,然后找到你操作数据源所在的工作簿的路径,单击“打开”,出现“选择表格”对话框,保持默认状态,单击“确定”按钮,如下图所示:
接着我们选择“表”单选按钮,这里我选择现有工作表的C1单元格(大家根据需要可以选择新工作表),单击“属性”按钮,打开"连接属性"对话框,找到“定义"选项卡,然后清除”命令文本“ 的文本,输入以下语句:SELECT DISTINCT * FROM [Sheet1$](这里Sheet1是我的源数据名称,你要输入自己工作表的名称哦,还有[]和$都不能少哦,若单元格区域还有其他字段或者数据不在行首,还要输入你的数据源区域哦,比如[Sheet1$].A4:A12),如下图所示:
方法五:高级筛选法
单击“数据”选项卡--》“排序和筛选”功能区--》“高级”按钮,弹出“高级筛选”对话框,如下图所示:
选中“将筛选结果复制到其他位置”,选择“列表区域”和“复制到”的位置,同时勾选“选择不重复的记录”复选框,如下图所示,单击“确定”就完成了重复值的筛选。
以上就是Excel剔除单列数据的重复值五种方法介绍,大家可以动手试一试,亲手体会一下哦。
- ?
如何在Excel中一键删除重复数据
Phoebe
展开
以下面这张表格为例:
我们可以看到,这张表共有4列22行数据,分别是序号、姓名、国籍、籍贯。在实际工作中,我们要处理的数据可能要多得多。
首先,我们分析下这张表。
可以看出,在这张表中,第2行和第21行的数据重复,第16行和第22行的数据重复。
下面,我们来看看如何一键删除重复的数据。
第一步:点击数据区域的任意单元格;
第二步:点击上方“数据”菜单栏里的“删除重复项”;
第三步:出现“删除重复项”的对话框;
这里,我们要注意两块,第一块是右上角的“数据包含标题”,这里需根据实际情况选择,比如今天用的示例表是有标题的,那么就应该勾选上。同时我们可以看到下面出现了各列的标题。
第二块就是下面的各列标题了。不同的选择会出现怎样的效果呢?我们来操作看看。
【全选】--未发现重复值。
这是怎么回事呢?原因是Excel会把每一行数据作为一个整体,由于第一列的“序号”列没有重复数据,所以出现了“未发现重复值”的结果。
【选择姓名、国籍、籍贯】--发现了2个重复值,已将其删除;保留了20个唯一值。
我们可以看到,第21、22行的数据已经被删除了。
其实到这里,已经达到我们的要求了,但我们可以继续选择不同的选项,看一看会有怎样的效果。
【选择国籍、籍贯】发现了8个重复值,已将其删除;保留了14个唯一值。
从结果我们可以看出,籍贯列里剩下的省份名已经都只是唯一值了。
由此我们可以想到,如果只选择“国籍”一列,将只保留一个值,就是“中国”了。
总结一下,在我们删除重复项的时候,一定要注意选择合适的列,否则要么没有效果,要么出现误删。
以下表为例:
第2行和第21行的姓名是一样的,但籍贯不同,说明他们不是一个人,只是同名而已。
如果我们按“姓名”列删除重复项,那么就会把第21行的数据误删掉,因此必须把“籍贯”列也加入进来,才能保证数据完整。
- ?
EXCEL表格中重复数据的处理之删除或者隐藏重复数据(一)
吉觅翠
展开
很多朋友工作或者日常生活中会接触到重复数据相关的问题,今天小编来整理下如何删除重复数据的思路。
话不多说,先看示例:
假设你是某网吧的负责人,想整理出目前为止上过机的会员人数,你手头现在有一份会员上机表,怎么才能达到目的?
解决问题前我们要明白这是一个怎样的问题,其实就是一个删除重复数据的问题,当然数据少的时候,排序之后手动删除就好,但是当数据很多的时候手动删除就不切实际而且容易出错。
我先说一下解决的思路:
首先排序是肯定的,升降序都可以,目的就是把相同数据放在一起。
其次删除或者隐藏同类数据,相同数据只保留一条记录,这是我们的目的。观察排序之后的数据我们如何去判断什么是重复数据?就是从首条数据开始,和下条数据相比,相同就是重复数据,不相同就不是重复数据。那么我们的函数思路就有了,对比上下单元格数据就好了。相同就返回1不相同就返回0,明显一个IF函数。
函数可以写为:=IF(A2=A3,1,0)得到如下图效果。
4.观察之后我们会发现结果为0的就是唯一数据,所以筛选C列的结果0之后就是我们要的数据。
5.从下面可以看出有8个筛选结果,当然因为筛选,左面行号是乱序的,我们也可以把结果粘贴到另一个sheet里,就很 明显知道有8条数据了。如下图
到了这里,相信你已经了解如何删除或者隐藏重复数据的原理,现在我升级一下问题,还是以这个示例来说,假设你不仅想知道你负责的网吧都有哪些会员,还想知道每个会员都爱玩什么游戏,如何从下图的源数据得出结果呢?
分析问题,刚开始我们处理的第一个问题是一列重复数据,而现在这个问题其实就是处理两列重复数据,既然我们已经知道了重复数据处理的原理,那么两列的重复数据处理思路也很明显,首先排序,两列都排序,升降无所谓,其次把两列数据当成一列数据计算对比结果就好了。函数=IF(A2&B2=A3&B3,1,0)
最后筛选并粘贴进新表的结果为
最后的最后,感谢您的阅览,本文讲的是重复数据之删除隐藏重复数据(一),小编会后续更新重复数据的其他问题处理思路,希望对您的工作,学习或者生活带来便利,如果您对小编的文章感兴趣,可以点击关注小编日后对重复数据其他问题解决思路的更新,再次感谢!
- ?
Excel小技巧:去掉重复项保留其中一条记录,该如何处理呢
鱼啊鱼
展开
最近领导提了一份Word文档,里面全是打乱的,总共有六百多项,要是人工来筛查,也不知何时很搞定,寻求有什么办法去掉重复项目,保留其中一个,本文分享一个比较有效,快捷方法,供大家参考学习。
问题:
如何去掉重复项保留其中一个?
方法:
一、将Word内容复制粘贴到Excel里面
不需要装其他复杂工作,比如数据库或者ACCESS等等,也不需要过多sql语言进行删除表建立表,只需利用Excel其中一个功能即可解决。
二、执行命令,可能会报错,比如这个合并单元格必须相同大小
由于Word内容出现合并表格,因此必须去掉单元格,在Excel里删除。
执行报错
出现以上执行错误,是因为表格里有合并项,如下图,把其中一项删除了。
三、执行【删除重复项】命令,可以看到已经删除三百多项
总体来说,这技巧挺方便,毕竟我们遇到这种情况很多,靠着人工来处理,效率低且未能达到目的,因此可以借此强大Excel功能来处理,达到事半功倍的效果。
注意事项:
必须只有一行数据,单元格不能有合并项;若合并太多,可以考虑ACCESS工具,直接复制进去,排序,然后在复制出来到Excel。
更多信息关注【电脑帮帮手】,了解更多计算机管理以及医院信息管理,期待您的关注和支持!
sql删除重复数据只保留一条
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并