比如数据库中有如下记录
蜡笔小新第1集
蜡笔小新第2集
蜡笔小新第3集
蜡笔小新第4集
............
蜡笔小新第99集
蜡笔小新第100集海贼王第1集
海贼王第2集
海贼王第3集
海贼王第4集
..........
海贼王第99集
海贼王第100集
等等数据,怎么如何把“第*集”去掉,然后把相应的数据关连起来,也就是所有“蜡笔小新”在一起,“海贼王”在一起。

解决方案 »

  1.   

    在sql server中有通配符'_',可以代表一个字符。
    第_集,第__集,第___集这样就可以了。
      

  2.   

    --去掉
    update T set col1=left(col1,patindex('%第%集%',col1)-1)
      

  3.   

    替换?
    update tableA
    set name='蜡笔小新'
    where name like '%蜡笔小新%'update tableA
    set name='海贼王'
    where name like '%海贼王%'
      

  4.   

    对不起楼上的各位了,我开始没有解释清楚。我是想把同一部的电影提出来,因为电影很多,所以不可能像
    update tableA
    set name='蜡笔小新'
    where name like '%蜡笔小新%'
    一部一部去处理。我想让同一部电影,比如“蜡笔小新”,关连起来,关连是通一个ParentID字段,假如“蜡笔小新第1集”的ID是1,那么所有“蜡笔小新第*集”的ParentID都为1。有没有好的解决办法呢?
      

  5.   

    我是想把同一部的电影提出来,因为电影很多,所以不可能像
    ??还是没搞明白,晕楼主最终要的是什么?是一个表吗?
    update tableA
    set name='蜡笔小新'
    where name like '%蜡笔小新%'
    这个有什么问题吗?
      

  6.   

    -- 测试数据
    DECLARE @t TABLE(col nvarchar(1000))
    INSERT @t SELECT N'蜡笔小新第1集'
    UNION ALL SELECT N'蜡笔小新第2集'
    UNION ALL SELECT N'蜡笔小新第3集'
    UNION ALL SELECT N'蜡笔小新第4集'
    UNION ALL SELECT N'蜡笔小新第99集'
    UNION ALL SELECT N'蜡笔小新第100集'UNION ALL SELECT N'海贼王第1集'
    UNION ALL SELECT N'海贼王第2集'
    UNION ALL SELECT N'海贼王第3集'
    UNION ALL SELECT N'海贼王第4集'
    UNION ALL SELECT N'海贼王第99集'
    UNION ALL SELECT N'海贼王第100集'UNION ALL SELECT N'英雄'-- 处理
    SELECT DISTINCT
    col = LEFT(col, PATINDEX(N'%第%集%', col + N'第集') - 1)
    FROM @t
    -- 结果
    col
    ---------------
    海贼王
    蜡笔小新
    英雄(3 行受影响)
      

  7.   

    --我想让同一部电影,比如“蜡笔小新”,关连起来,关连是通一个ParentID字段,假如“蜡笔小新第1集”的ID是1,那么所有“蜡笔小新第*集”的ParentID都为1。-- 测试数据
    DECLARE @t TABLE(col nvarchar(1000), ParentID int)
    INSERT @t(col) SELECT N'蜡笔小新第1集'
    UNION ALL SELECT N'蜡笔小新第2集'
    UNION ALL SELECT N'蜡笔小新第3集'
    UNION ALL SELECT N'蜡笔小新第4集'
    UNION ALL SELECT N'蜡笔小新第99集'
    UNION ALL SELECT N'蜡笔小新第100集'UNION ALL SELECT N'海贼王第1集'
    UNION ALL SELECT N'海贼王第2集'
    UNION ALL SELECT N'海贼王第3集'
    UNION ALL SELECT N'海贼王第4集'
    UNION ALL SELECT N'海贼王第99集'
    UNION ALL SELECT N'海贼王第100集'UNION ALL SELECT N'英雄'-- 处理
    SELECT id = IDENTITY(int, 1, 1), col
    INTO #
    FROM(
    SELECT DISTINCT
    col = LEFT(col, PATINDEX(N'%第%集%', col + N'第集') - 1)
    FROM @t
    )A
    UPDATE A SET
    ParentID = B.id
    FROM @t A, # B
    WHERE A.col LIKE B.col + N'%'
    DROP TABLE #SELECT * FROM @t
      

  8.   

    create table A
    (
    filmname varchar(20)
    )
    insert A
    select '蜡笔小新第1集' union all
    select '蜡笔小新第2集' union all
    select '海贼王第1集' union all
    select '海贼王第2集' union all
    select '火影忍者第1集' union all
    select '火影忍者第2集' union all
    select '圣斗士第1集' union all
    select '圣斗士第2集'
    select * from A
    select id=identity(int,1,1),* into #T from (select distinct left(filmname,charindex('第',filmname)-1) xx from a) x
    select * from #Tid          xx                   
    ----------- -------------------- 
    1           海贼王
    2           火影忍者
    3           蜡笔小新
    4           圣斗士