declare @str char(300),@substr char(30),@pos int
  select @str=substring('abcdefghijk',3,1)
  select @substr='c'

解决方案 »

  1.   

    好像没有这样的函数可直接用,不过你可以使用最笨的方法,就是使用WHILE...BREAK循环字符串长度,以取得相应位置
      

  2.   

    改一下定义,用charindex或patindex函数可以
    declare @str varchar(300),@substr varchar(30),@pos int
      select @str='abcdefghijk' 
      select @substr='c'
      select @pos=charindex(@substr,@str)
      print @pos
      select @pos=patindex('%'+@substr+'%',@str)
      print @pos
      

  3.   

    charindex 返回查找到的字符串位置, patindex 也是返回查找到的字符串位置, 但要查找的字符串前后必须要加 %
      

  4.   

    可以这样啊:
    原来的定义是不用变的
    declare @str char(300),@substr char(30),@pos int
        select @str='abcdefghijk' 
        select @substr='c'
        select @pos=charindex('c',@str,1)
        print @pos
    如果换成patindex函数也可以的。但要加通配符。