• 茴香豆的n种写法之③——sql更新id的n种写法


    此解法来自博客园思想瞭望者开设之“sql精英群”对话。

    iceline(43417365) 11:36:59

     
    现在PATH的上下级关系是对了,我如何更新parentID

    thanks(305380844) 12:54:12
    做出来了,试试
    update test set parentid = b.parentidb
    from test ,(
    select a.id, a.parentid, a.path , b.id as parentidb, b.path as bpath
    from test a cross join test b
    where len(REPLACE(a.path, b.path, ''))=4) as b
    where test.id = b.id

    Tdf(79187675) 13:17:20 
    declare @TT table
        (
          id int
        , ParentId int
        , path varchar(100)
        )
    insert into @TT
            ( id , path )
        values
            ( 1 , 'aaa' ),
            ( 2 , 'aaa/aab' ),
            ( 3 , 'aaa/aac' ),
            ( 4 , 'aaa/aab/aaa' ),
            ( 5 , 'aaa/aac/aa' ) ;
    ;
    with    TT
              as ( select
                        *
                    from
                        @TT
                    where
                        charindex('/' , path) = 0
                       -- id in ( 2 , 3 )
                   union all
                   select
                        T1.id , TT.id , T1.path
                    from
                        @TT T1
                      , TT
                    where
                        len(TT.path) < len(T1.path)
                        and left(T1.path , len(TT.path)) = TT.path
                        and substring(T1.path , len(TT.path) + 2 , len(T1.path) - len(TT.path)) not like '%/%'
                 )
        select
                *
            from
                TT

    Kenny(27694100) 13:21:09
    update test set parentid = b.id
      from test ,(select * from test) b
        where left(a.path,len(b.path)) = b.path and len(a.path) = len(b.path)+4

  • 相关阅读:
    流程图如何画
    flex布局
    css函数
    常用的Array相关的属性和方法
    判断一个字符串中出现次数最多的字符,统计这个次数
    css溢出滚动条及去除滚动条的方法
    vue生命周期
    css中添加屏幕自适应方法(rem)
    vue-cli中配置屏幕自适应(px2rem)
    关于解决项目运行时出现的缓存问题
  • 原文地址:https://www.cnblogs.com/thanks/p/2324286.html
Copyright © 2020-2023  润新知