数据库有一列是这样:10.11.23.21
10.11.56.87
10.346.78.90
20.11.337.55怎么按10.11.汇总?(有点说不清)
也就是上一级汇总?
想得到结果10.11
10.346
20.11求高手帮忙

解决方案 »

  1.   

     --> 测试数据:@tb
    declare @tb table([col] varchar(12))
    insert @tb
    select '10.11.23.21' union all
    select '10.11.56.87' union all
    select '10.346.78.90' union all
    select '20.11.337.55'select parsename(col,4)+'.'+parsename(col,3) from @tb group by parsename(col,4)+'.'+parsename(col,3)/*
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    10.11
    10.346
    20.11(3 行受影响)*/
      

  2.   

    --> 测试数据:@tb
    declare @tb table([col] varchar(12))
    insert @tb
    select '10.11.23.21' union all
    select '10.11.56.87' union all
    select '10.346.78.90' union all
    select '20.11.337.55'select distinct LEFT(col,charindex('.',col,charindex('.',col)+1)-1) as col from @tb/*
    col
    ------------
    10.11
    10.346
    20.11(3 行受影响)
    */
      

  3.   

    parsename 是不是只能4级的。。
    1 = 对象名称2 = 架构名称3 = 数据库名称4 = 服务器名称
    ????
      

  4.   

    学习 又对chaiindex函数进一步理解