ms sqlserver 库中一个表 table_name
字段:
计算机代码 名称
1          北京市蓝天置业有限公司
2          大地置业有限责任公司
3          北京市海淀区大海置业顾问事务所
·····
我现在想使用update语句将库表中的名称有关名称的字符全改为“XX”,比如北京市蓝天置业有限公司改为北京市XX置业有限公司。有没有一个update语句可以实现?

解决方案 »

  1.   

    CREATE TABLE #t1
        (
          计算机代码 VARCHAR(20) ,
          名称 VARCHAR(150)
        )
    INSERT  INTO #t1
            ( 计算机代码, 名称 )
    VALUES  ( '1', '北京市蓝天置业有限公司' )INSERT  INTO #t1
            ( 计算机代码, 名称 )
    VALUES  ( '2', '大地置业有限责任公司' )INSERT  INTO #t1
            ( 计算机代码, 名称 )
    VALUES  ( '3', '北京市海淀区大海置业顾问事务所' )
    UPDATE #t1 SET 名称=STUFF(名称,CHARINDEX('置业',名称)-2,2,'')
    SELECT * FROM #t1
      

  2.   

    建议楼主新建一个表存储企业的名称。
    CREATE TABLE #t1
        (
          计算机代码 VARCHAR(20) ,
          名称 VARCHAR(150)
        )
    INSERT  INTO #t1
            ( 计算机代码, 名称 )
    VALUES  ( '1', '北京市蓝天置业有限公司' )INSERT  INTO #t1
            ( 计算机代码, 名称 )
    VALUES  ( '2', '大地置业有限责任公司' )INSERT  INTO #t1
            ( 计算机代码, 名称 )
    VALUES  ( '3', '北京市海淀区大海置业顾问事务所' )create table #t2
    (
      名称 nvarchar(25)
    )
    insert into #t2
    select '蓝天' union all
    select '大地' union all
    select '大海'update a set a.名称=REPLACE(a.名称,b.名称,'xx') from #t1 a left join #t2 b on charindex(b.名称,a.名称)>0
    select * from #t1
    -------------------
    计算机代码 名称
    1 北京市xx置业有限公司
    2 xx置业有限责任公司
    3 北京市海淀区xx置业顾问事务所
      

  3.   

    你试一下这个:
    CREATE TABLE #A1
        (
          计算机代码 VARCHAR(20) ,
          名称 VARCHAR(150)
        )
    INSERT  INTO #A1
            ( 计算机代码, 名称 )
    VALUES  ( '1', '北京市蓝天置业有限公司' )INSERT  INTO #A1
            ( 计算机代码, 名称 )
    VALUES  ( '2', '大地置业有限责任公司' )INSERT  INTO #A1
            ( 计算机代码, 名称 )
    VALUES  ( '3', '北京市海淀区大海置业顾问事务所' )create table #A2
    (
      名称 nvarchar(25)
    )
    insert into #A2
    select '蓝天' union all
    select '大地' union all
    select '大海'update a set a.名称=REPLACE(a.名称,b.名称,'xx') from #t1 a left join #t2 b on charindex(b.名称,a.名称)>0
    select * from #A1
    -------------------