表中有一字段内容如:[查看],[增加],[删除],[打印],[导出],
想使用一条Update语句实现把[增加],[删除],这些内容删除,即只留下格式:[查看],[打印],[导出],
注:字段内容不一定按上述排列
请各位指教,THS

解决方案 »

  1.   

    你是想把字段都去掉, 还是保留字段只是内容变成NULL了??---去掉字段
    alter table 表名 drop column [增加], [删除]--- 保留字段,只是内容变成NULL
    update 表名
    set [增加] = NULL,
        [删除] = NULL
      

  2.   

    if object_id('tb') is not null
    drop table tb
    go
    create table tb(s varchar(50))
    insert into tb select '[查看],[增加],[删除],[打印],[导出]'
    insert into tb select '[查看],[增加],[删除],[打印],[导出]'
    insert into tb select '[查看],[增加],[打印],[导出]'--创建过程
    if object_id('proc_name') is not null
    drop proc proc_name
    go
    create proc proc_name
    @s varchar(50)
    as
    begin
    declare @sql varchar(8000),@sql2 varchar(8000)
    create table #(s varchar(50))
    set @sql='select '''+replace(@s,',',''' as s union all select ''')+''''
    exec('insert into #(s) '+@sql)
    set @sql2='s'
    select @sql2='replace('+@sql2+','''+s+''','''')' from #
    exec('update tb set s=replace('+@sql2+','',,'','','')')
    end
    goexec proc_name '[增加],[导出]'select * from tb[查看],[删除],[打印],
    [查看],[删除],[打印],
    [查看],[打印],动态有难度,先写这点,晚上回家再想下
      

  3.   

    update 表 set 字段 = replace(replace(字段, '[查看],', ''),'[删除],','')
    --如果你的字段里面的内容的最后一个是“,”或者说内容都是“[。。]”+ “,”形式的就用这种简单的方法就行了
      

  4.   


    /*如果你的字段的内容都是“[。。]”+ “,”格式,包括最后一个内容*/
    update 表 set 字段 = replace(replace(字段, '[增加],', ''),'[删除],','')/*否则语句有点长,你自己也可以按照上面的方法写出*/
    不好意思,第一次用CSDN,不知道还能贴源代码。
      

  5.   

    最后的,也有难度,如果连续替换3个
    就会剩下a,,,b
    如果是4个
    就会剩下a,,,,b
    不太好写
      

  6.   

    为什么不能先select出来,处理好了,再update进去了