sql语句替换字符里,有没有什么方法替换或者删除某个列里的值?

西西软件下载最安全的下载网站、值得信赖的软件下载站!
→ sql语句中----删除表数据drop、truncate和delete的用法
虽然西西不建议大家去用命令删除表中的东西,但是这些删除命令总有用的着的地方。说到删除表数据的关键字,大家记得最多的可能就是delete了然而我们做数据库开发,读取数据库数据.对另外的两兄弟用得就比较少了现在来介绍另外两个兄弟,都是删除表数据的,其实也是很容易理解的老大------drop出没场合:drop table &tb&--tb表示数据表的名字,下同绝招:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表,& & & &例如:一个班就是一个表,学生就是表中的数据,学生的职务就是定义& & & &drop table class,就是把整个班移除.学生和职务都消失比如下面School数据库中有两张表[Classes]表和[Teacher]表当执行下面代码之后Classes表就被清楚,一干二净! 删除得非常暴力,作为老大实至名归老二-----truncate出没场合:truncate table tb绝招:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,他比较温柔.& & & &同样也是一个班,他只去除所有的学生.班还在,职务还在,如果有新增的学生可以进去,也可以分配上职务删除内容很容易理解,不删除定义也很容易理解,就是保留表的数据结构上图就表现了:删除内容执行语句之后,发现数据表的结构还在,也就是不删除定义至于释放空间,看下下面两幅图.你们就会明白的右图:Id列标识列,因之前delete过行数据,所以会出现标识列不连续(体现了delete删除是不释放空间的)经过truncate table Teacher 之后 再新增三条数据右图:同样Id是标识列,发现插入数据的时候,标识列连续了(体现了truncate删除是释放空间)注意:truncate 不能删除行数据,要删就要把表清空老三-----delete出没场合:delete table tb &&--虽然也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低)& & & & & & 或& & & & & & delete table tb where 条件绝招:删除内容不删除定义,不释放空间。三兄弟之中最容易欺负的一个然后关于delete的就不详细说明了,大家都懂的关于truncate的小小总结:truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。但 truncate 比 delete速度快,且使用的系统和事务日志资源少。delete 语句每次删除一行,并在事务日志中为所删除的每行记录一项。所以可以对delete操作进行roll back1、truncate 在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令Delete将被撤销,而&truncate&则不会被撤销。&2、truncate 是一个DDL语言,向其他所有的DDL语言一样,他将被隐式提交,不能对&truncate&使用ROLLBACK命令。&3、truncate&将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过&truncate&操作后的表比Delete操作后的表要快得多。&4、truncate&不能触发任何Delete触发器。&5、当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。&6、不能清空父表
09-2504-2810-2202-2102-1201-2401-1701-1201-1201-12
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载如何使用sql语句使一个列的值变成另一个字段的值? - ITeye问答
例如有字段:姓名, 密码
现在密码字段的值是password 我现在想使所有的密码值改为相对应的姓名字段的值。 谁会写这个sql语句呀。
或者是随机产生。
采纳的答案
update user u set u.password=u.name
已解决问题
未解决问题请教用sql语句怎么替换一列值里的某一段字符 - Sql Server当前位置:& &&&请教用sql语句怎么替换一列值里的某一段字符请教用sql语句怎么替换一列值里的某一段字符&&网友分享于:&&浏览:290次请问用sql语句如何替换一列值里的某一段字符比如某列值是:23dc51c25b465d12f32e54d5cb54a4c2想把第17位到第20位的这4个值替换为1a34,请问用sql语句该如何操作?------解决方案--------------------
set col=stuff(col,17,4,'1a34')
------解决方案--------------------探讨比如某列值是:23dc51c25b465d12f32e54d5cb54a4c2想把第17位到第20位的这4个值替换为1a34,请问用sql语句该如何操作?
------解决方案--------------------SQL code
declare @sql varchar(50)
set @sql='23dc51c25b465d12f32e54d5cb54a4c2'
select stuff(@sql,17,4,'1a34') as newsql
--------------------------------------------------
23dc51c25b465d121aa4c2
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有一直没有怎么专门的学习SQL,对其也只是一般性的了解!最近工作需要,有一个关于查询的问题,求高手解决:有一个字典表,是一个分类表,大致内容如下:ClassTbl:ID
…ProductTbl:ID
ClassID001
002,003002
001,003,004003
002,003,004005
001,002,003,004,005…
…现在希望查询出来的结果是将ProductTbl表中的ClassID替换成名称,即:产品1
分类2,分类3产品2
分类1,分类3,分类4产品3
分类3产品4
分类2,分类3,分类4产品5
分类1,分类2,分类3,分类4,分类5…
…在baidu和中都不知道怎么搜索,所以到这里来请教,请不吝赐教!
--------------------------------------
--------------------------------------
replace,如何replace?
--------------------------------------
用函数吧CREATE
FUNCTION GetClassName(@ClassID VARCHAR(MAX))RETURNS NVARCHAR(MAX)ASBEGIN DECLARE @ClassName NVARCHAR(MAX) SELECT @ClassName = '' WHILE @ClassID && ''
DECLARE @Position INT
SELECT @Position = CHARINDEX(',',@ClassID)
IF @Position & 0
SELECT @ClassName = @ClassName + NAME + ',' FROM classtbl WHERE ID = SUBSTRING(@ClassID,1,@Position - 1);
SET @ClassID = SUBSTRING(@ClassID,@Position + 1 ,LEN(@ClassID)-@Position + 1);
SELECT @ClassName = @ClassName + NAME FROM classtbl WHERE ID = @ClassID
SET @ClassID = ''
RETURN @ClassNameENDSELECT ID,NAME,dbo.GetClassName(ClassID) from ProductTbl
--------------------------------------
select Nam,class=stuff((select ','+[Nam] from tb1 where class like '%'+ tb1.ID +'%'
xml path('')),1,1,'') from tb2
--------------------------------------
引用 4 楼 xxfvba 的回复:select Nam,class=stuff((select ','+[Nam] from tb1 where class like '%'+ tb1.ID +'%' for xml path('')),1,1,'') from tb2该语句有问题,但是提供了一种思路,谢谢!
--------------------------------------
引用 3 楼 wangchangming 的回复:用函数吧CREATE
FUNCTION GetClassName(@ClassID VARCHAR(MAX))RETURNS NVARCHAR(MAX)ASBEGIN DECLARE @ClassName NVARCHAR(MAX) SELECT @ClassName = '' WHILE @ClassID && ''
DECLARE @Position INT
SELECT @Position = CHARINDEX(',',@ClassID)
IF @Position & 0
SELECT @ClassName = @ClassName + NAME + ',' FROM classtbl WHERE ID = SUBSTRING(@ClassID,1,@Position - 1);
SET @ClassID = SUBSTRING(@ClassID,@Position + 1 ,LEN(@ClassID)-@Position + 1);
SELECT @ClassName = @ClassName + NAME FROM classtbl WHERE ID = @ClassID
SET @ClassID = ''
RETURN @ClassNameENDSELECT ID,NAME,dbo.GetClassName(ClassID) from ProductTbl这个很好,解决了我的问题!}

我要回帖

更多关于 sql语句替换字段内容 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信