一个略有特殊的Update的语句.

转载 2008年05月03日 00:16:00
今天遇到这样一个更新语句:
在用户表Sys_emplyee中有一字段Statisticsreports,类型为:varchar(200),这个字段用来记录此用户可以查看的报表的ID, 其中ID是用单引号引起来的,多个ID之间使用逗号分开.
例如:
None.gifselect EmpName,Statisticsreports from  Sys_emplyee
None.gif
where  EmpAccount='newsight/zhangzs8896'

--返回:
 EmpName      Statisticsreports
 组长                '1','2','3'

现在想取消该用户对某一报表的访问权限,使用以下Sql语句
方法一:
None.gifdeclare @p varchar(20)
None.gif
set @p='''2'''
None.gif
update Sys_emplyee
None.gif
set Statisticsreports=stuff(replace(','+Statisticsreports,','+@p,''),1,1,'')
None.gif
where empaccount='newsight/zhangzs8896'

更新后返回记录:
 EmpName      Statisticsreports
 组长                '1','3'

方法二:
None.gifdeclare @p varchar(20)
None.gif
set @p='''2'''
    update Sys_emplyee 
None.gif
set Statisticsreports = case when (Statisticsreports like @p+'%'
None.gif                                 
then replace(Statisticsreports,@p+',','')
None.gif                             
when (Statisticsreports like '%'+@p
None.gif                                 
then replace(Statisticsreports,','+@p,'')
None.gif                             
else replace(Statisticsreports,','+@p+',',','
None.gif                        
end
None.gif
where empaccount='newsight/zhangzs8896'


文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有

PostgreSQL中特殊语句

PostgreSQL中如何查询在当前的哪个数据库中 tester=# select current_database(); current_database -----------------...
  • azhegps
  • azhegps
  • 2017-01-03 13:28:12
  • 312

sql中update语句的几个特殊处理

语法: [sql] view plain copy update table_name t set t.row_name=replace(t.row_name,'old_value','...
  • dragonpeng2008
  • dragonpeng2008
  • 2016-08-04 10:30:55
  • 1630

mybatis一次执行多条SQL语句,例如update节点

mybatis一次执行多条SQL语句,例如update节点
  • u014481096
  • u014481096
  • 2015-05-06 17:27:21
  • 6414

一条比较复杂的update sql语句

前两天花了俩天时间录入的数据,结果发现少了一列,电压等级!!! 再重新录一遍简直是要了人的老命了!思考一条update语句完成更新操作 已有的表: 一张电压表(电压id,具体电压) 母...
  • sinat_32133675
  • sinat_32133675
  • 2017-11-30 17:37:58
  • 316

oracle update语句

oracle中update时要注意加where exists判断,如:      update sysmanage.tmp_p8030009 a         set a.today_stockva...
  • terryhuang
  • terryhuang
  • 2007-05-28 17:25:00
  • 4876

"update语句的语法错误"解决

最近做了一个用C#编写的"学籍管理系统"的单机软件,主要工作就是连接数据库,数据库就很自然的选择了MS Access。    前期工作很顺利,无非就是注意一下sql server和Access的sq...
  • daiwei15
  • daiwei15
  • 2009-05-20 10:07:00
  • 5868

oracle对动态sql语句的处理

1、静态SQL语句性能优于动态SQL语句,如果功能确定最好使用静态SQL语句 2、使用execute immediate语句,用于处理除了多行查询之外的任何动态SQL,包括DDL、DCL、DML、以...
  • ceclar123
  • ceclar123
  • 2012-09-13 17:46:27
  • 2144

如何在mybatis中一个insert,delete,update中执行多条SQL语句

一般我们会在applicationContect中这么配置: destroy-method="close"> value="jdbc:mysql://192.168.0.15:33...
  • sinat_30654133
  • sinat_30654133
  • 2016-10-19 16:39:54
  • 4086

如何在一个update语句中,用一个表的数据更新另一个表的数据

 (1)如何在一个update语句中,用一个表的数据更新另一个表的数据update aaset aa.ac=(select top 1 dd from cc where cc.aa=aa.aa)  该...
  • itmenhu
  • itmenhu
  • 2008-11-19 16:43:00
  • 4992

Oracle UPDATE 语句

-- Start 我估计,只要是知道SQL 语句的人都会用UPDATE 语句,可是大部分人不知道UPDATE 语句有两种写法,首先,考虑下面的情况: CREATE TABLE STUDENT ( ID...
  • shangboerds
  • shangboerds
  • 2015-06-18 17:10:31
  • 9620
收藏助手
不良信息举报
您举报文章:一个略有特殊的Update的语句.
举报原因:
原因补充:

(最多只允许输入30个字)