我有如下的数据要处理:小班号         BBB
AB7-3
AB7-8
AB7-32
AB18-15
AB18-2
……我想将字段 小班号 下的“-”之后的数据截取出来放到字段BBB中,但是我水平不够,请各位大牛帮帮忙,先谢谢了!如:
小班号         BBB
AB7-3            3
AB7-8            8
AB7-32           32
AB18-15          15
AB18-2           2
……

解决方案 »

  1.   

    update tb set bbb=stuff(小班号,1,charindex('-',小班号),'')
      

  2.   

    update tb
    set BBB=right(小班号,len(小班号)-patindex('%-%',小班号))
      

  3.   

    --------------------------------------------------------------------------
    --  Author : htl258(Tony)
    --  Date   : 2010-04-26 17:42:30
    --  Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
    --          Jul  9 2008 14:43:34 
    --          Copyright (c) 1988-2008 Microsoft Corporation
    --          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
    --  Blog   : http://blog.csdn.net/htl258
    --------------------------------------------------------------------------
    --> 生成测试数据表:tbIF NOT OBJECT_ID('[tb]') IS NULL
    DROP TABLE [tb]
    GO
    CREATE TABLE [tb]([小班号] NVARCHAR(10),[BBB] INT)
    INSERT [tb]
    SELECT N'AB7-3',23 UNION ALL
    SELECT N'AB7-8',NULL UNION ALL
    SELECT N'AB7-32',NULL UNION ALL
    SELECT N'AB18-15',NULL UNION ALL
    SELECT N'AB18-2',NULL
    GO
    --SELECT * FROM [tb]-->SQL查询如下:update tb set bbb=stuff(小班号,1,charindex('-',小班号),'')
    --查询更新结果
    select * from tb
    /*
    小班号        BBB
    ---------- -----------
    AB7-3      3
    AB7-8      8
    AB7-32     32
    AB18-15    15
    AB18-2     2(5 行受影响)
    */
      

  4.   

    Update t
    Set t.BBB = SUBSTRING([小班号], CHARINDEX('-', [小班号]) + 1, LEN([小班号]) - CHARINDEX('-', [小班号]))
    From tb t
      

  5.   

    Update t
    Set t.BBB = SUBSTRING([小班号], CHARINDEX('-', [小班号]) + 1, LEN([小班号]) - CHARINDEX('-', [小班号]))
    From tb t
      

  6.   

    牛人们啊,刚才那个问题解决了,但是我有碰到一个新问题了,还是解决不了哦,再次请高手出山村名       DDD
    渡口村
    东升村  
    东升村
    东升村
    东升村
    东升村
    郑村我想将名字叫东升村的对应的DDD中分别有个编号如下:
    村名       DDD
    渡口村
    东升村      1
    东升村      2
    东升村      3
    东升村      4
    东升村      5
    郑村
      

  7.   


    update tb set bbb=stuff(小班号,1,charindex('-',小班号),'')
      

  8.   


    if (OBJECT_ID('tb') is not null) drop table tb
    Create table tb
    (
       banhao VARCHAR(20),
       BBB VARCHAR(20) NULL
    )
    GOINSERT INTO tb
    SELECT 'AB7-3',NULL
    UNION ALL
    SELECT 'AB7-8',NULL
    UNION ALL
    SELECT 'AB7-32',NULL
    UNION ALL
    SELECT 'AB18-15',NULL
    UNION ALL
    SELECT 'AB18-2',NULLSELECT banhao,RIGHT(banhao,LEN(banhao)-CHARINDEX('-',banhao)) BBB FROM tb
      

  9.   

    --------------------------------------------------------------------------
    --  Author : htl258(Tony)
    --  Date   : 2010-04-26 17:49:02
    --  Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
    --          Jul  9 2008 14:43:34 
    --          Copyright (c) 1988-2008 Microsoft Corporation
    --          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
    --  Blog   : http://blog.csdn.net/htl258
    --------------------------------------------------------------------------
    --> 生成测试数据表:tbIF NOT OBJECT_ID('[tb]') IS NULL
    DROP TABLE [tb]
    GO
    CREATE TABLE [tb]([村名] NVARCHAR(10),[DDD] INT)
    INSERT [tb]
    SELECT N'渡口村',NULL UNION ALL
    SELECT N'东升村',NULL UNION ALL
    SELECT N'东升村',NULL UNION ALL
    SELECT N'东升村',NULL UNION ALL
    SELECT N'东升村',NULL UNION ALL
    SELECT N'东升村',NULL UNION ALL
    SELECT N'郑村',NULL
    GO
    --SELECT * FROM [tb]-->SQL查询如下:
    declare @i int
    set @i=0
    update tb set DDD=@i,@i=@i+1 where 村名 like '东升%'
    select * from tb
    /*
    村名         DDD
    ---------- -----------
    渡口村        NULL
    东升村        1
    东升村        2
    东升村        3
    东升村        4
    东升村        5
    郑村         NULL(7 行受影响)
    */