一个字符串包含两部分内容,是用一个"-"来隔开的,比如"100元-987元",我如何拆分成两个字符串呀.即:"100元"和 "987元"
--------------------
请大家指教,谢谢.

解决方案 »

  1.   

    select left(字段,charindex('-',字段)-1),substring(字段,charindex('-',字段)+1,len(字段))
      

  2.   


    declare @str varchar(50)
    set @str='100元-987元'select substring(@str,0,charindex('-',@str,0))select substring(@str,charindex('-',@str,0)+1,len(@str)-charindex('-',@str,0)+1)
      

  3.   

    declare  @A varchar(100)set @A='17-19'select left(@A,charindex('-',@A)-1),substring(@A,charindex('-',@A)+1,len(@A))
    ------------------
    17    19
      

  4.   

    select left(字段,charindex('-',字段)-1) 
    ,right(字段,charindex('-',reverse(字段))-1)
    from T
      

  5.   


    create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
    returns @temp table(a varchar(100))
    /*--实现split功能 的函数
    --date    :2005-4-20
    --Author :Domino
    */
    as 
    begin
        declare @i int
        set @SourceSql=rtrim(ltrim(@SourceSql))
        set @i=charindex(@StrSeprate,@SourceSql)
        while @i>=1
        begin
            insert @temp values(left(@SourceSql,@i-1))
            set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
            set @i=charindex(@StrSeprate,@SourceSql)
        end
        if @SourceSql<>'\'
           insert @temp values(@SourceSql)
        return 
    end
    goselect * from dbo.f_split('山东:济南:山东:济南',':')select top 1 * from f_split('山东:济南',':')
    go
    drop function [dbo].[f_split]
    go
      

  6.   


    declare @s varchar(8000)
    declare @s1 varchar(8000)
    declare @s2 varchar(8000)
    declare @n int
    set @s = '100元-987元'
    set @n  = charindex( '-' , @s , 1)
    select @s1 = left(@s,@n - 1)
    select @s = stuff(@s , 1, @n , '')
    select @s2 = left(@s , len(rtrim(@s)))
    --或者
    select @s1  = substring(@s , 1, @n - 1)
    select @s2  = substring(@s , @n+1 , len(rtrim(@s)) - @n)