select left(str , 1 , charindex('/',str) - 1) from tb

解决方案 »

  1.   

    declare @str as varchar(20)
    set @str = '你们好/OK'select 前 = left(@str , charindex('/',@str) - 1),
           后 = substring(@str , charindex('/',@str) + 1, len(@str))/*
    前                    后                    
    -------------------- -------------------- 
    你们好                  OK(所影响的行数为 1 行)
    */
      

  2.   

    insert into t
    select stuff(col,charindex('/',col,1000,'')) from ta
    stuff(col,charindex('/',col,1000,'')) 
      

  3.   

    declare @s varchar(200)
    set @s='你们好/OK'
    select  left(@s,charindex('/',@s)-1) as c1 ,right(@s,len(@s)-charindex('/',@s)) as c2/*
    c1            c2
    ------     --------
    你们好        OK
    */
      

  4.   


    更正
    insert into t 
    select stuff(col,charindex('/',col),1000,'') from ta 
    stuff(col,charindex('/',col),1000,'')
      

  5.   

    declare @s varchar(200)
    set @s='你们好/OK'
    select  stuff(@s,charindex('/',@s),1000,'') as c2/*
    c2      
    ------------
    你们好
    */
      

  6.   

    declare @s varchar(200)
    set @s='你们好/OK'
    select  PARSENAME(replace(@s,'/','.'),2) as c1,
    PARSENAME(replace(@s,'/','.'),1) as c2
    /*
    c1            c2
    ------     --------
    你们好        OK
    */
      

  7.   

    select substring('你们好/OK',1,charindex('/','你们好/OK')-1),substring('你们好/OK',charindex('/','你们好/OK')+1,len('你们好/OK'))-------------
    你们好 OK
      

  8.   

    再补充问一下  如果是"你们好/OK/GOOD"  怎么取呢?   left()是什么意思?
      

  9.   

    LEFT
    返回从字符串左边开始指定个数的字符。语法
    LEFT ( character_expression , integer_expression ) 参数
    character_expression字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐式地转换为 varchar 的数据类型。否则,请使用 CAST 函数显式转换 character_expression。integer_expression是正整数。如果 integer_expression 为负,则返回空字符串。返回类型
    varchar