none
快要死了,求大神解答 RRS feed

  • 问题

  •          列
    ME-10#模垫φ70-角钢-2
    ME-105.5*29.5-1

    如何得到:
    10#模垫φ70-角钢

    105.5*29.5

    求大神解答

    2012年11月3日 7:40

答案

  • 如果开头不都是'ME-'开头的话,replace是不行的。

    根据您的需求,貌似是去掉第一个-前面的,和最后一个-后面的。

    --> 测试数据: @T
    declare @T table (col varchar(21))
    insert into @T
    select 'ME-10#模垫φ70-角钢-2' union all
    select 'ME-105.5*29.5-1'
    
    select 
    	substring(col,
    	charindex('-',col)+1,
    	len(col)-charindex('-',reverse(col))-charindex('-',col)) as col
    from @T
    /*
    col
    ---------------------
    10#模垫φ70-角钢
    105.5*29.5
    */

    2012年11月3日 13:38
    版主
  • 凑一下热闹

    declare @T table (col varchar(21))
    insert into @T
    select 'ME-10#模垫φ70-角钢-2' union all
    select 'ME-105.5*29.5-1'
    SELECT * FROM @T
    SELECT REVERSE(STUFF(REVERSE(STUFF(col,1,3,'')),1,2,'') )FROM @T

    /*
    col
    ---------------------
    10#模垫φ70-角钢
    105.5*29.5
    */


    给我写信: QQ我:点击这里给我发消息


    2012年11月4日 9:53

全部回复

  • declare @test table (data Nvarchar(100))
    insert into @test values (N'ME-10#模垫φ70-角钢-2'),(N'ME-105.5*29.5-1')
    select replace(SUBSTRING(data,1,LEN(data)-charindex('-',reverse(data))),'ME-','') as data from @test 

    result:

    10#模垫φ70-角钢
    105.5*29.5

    2012年11月3日 11:34
  • 如果开头不都是'ME-'开头的话,replace是不行的。

    根据您的需求,貌似是去掉第一个-前面的,和最后一个-后面的。

    --> 测试数据: @T
    declare @T table (col varchar(21))
    insert into @T
    select 'ME-10#模垫φ70-角钢-2' union all
    select 'ME-105.5*29.5-1'
    
    select 
    	substring(col,
    	charindex('-',col)+1,
    	len(col)-charindex('-',reverse(col))-charindex('-',col)) as col
    from @T
    /*
    col
    ---------------------
    10#模垫φ70-角钢
    105.5*29.5
    */

    2012年11月3日 13:38
    版主
  • 凑一下热闹

    declare @T table (col varchar(21))
    insert into @T
    select 'ME-10#模垫φ70-角钢-2' union all
    select 'ME-105.5*29.5-1'
    SELECT * FROM @T
    SELECT REVERSE(STUFF(REVERSE(STUFF(col,1,3,'')),1,2,'') )FROM @T

    /*
    col
    ---------------------
    10#模垫φ70-角钢
    105.5*29.5
    */


    给我写信: QQ我:点击这里给我发消息


    2012年11月4日 9:53
  • 忘记说了,如果是不都是'ME-'开头 跟-数字结尾的话,还是要按照maco wang大侠的方法

    给我写信: QQ我:点击这里给我发消息

    2012年11月4日 10:18