首页蓝耳朵|小小蓝耳朵广州图书馆外文室英语儿童读物资源介绍网佛教青年之友旧版收集永硕E盘Phonics Short Vowels Game 
利用PARSENAME和CHARINDEX两种方法分割字符串组合
所属栏目:MS SQL 2000  时间:2009-04-18 11:11  作者:狼子

PARSENAME:返回对象名称的指定部分。可以检索的对象部分有对象名、所有者名称、数据库名称和服务器名称。

语法:PARSENAME ( 'object_name' , object_piece )

备注:如果存在下列条件之一,则 PARSENAME 返回 NULL:
   ·object_name 或 object_piece 为 NULL。
   ·发生语法错误。

请求的对象部分长度为 0,且不是有效的 Microsoft SQL Server 2005 标识符。长度为零的对象的名称将使整个限定名称无效。有关详细信息,请参阅使用标识符作为对象名称。

参数:'object_name'

要检索其指定部分的对象的名称。object_name 的数据类型为 sysname。此参数是可选的限定对象名称。如果对象名称的所有部分都是限定的,则此名称可包含四部分:服务器名称、数据库名称、所有者名称以及对象名称。

object_piece:要返回的对象部分。object_piece 的数据类型为 int 值,可以为下列值。
   1 = 对象名称
   2 = 架构名称
   3 = 数据库名称
   4 = 服务器名称

返回类型:nchar

利用该函数可以分割四个以下的字符串组合:
declare @txt varchar(50), @index int
set @txt = '广州.上海.北京.天津'
select @index = len(@txt) - len(replace(@txt, '.', '')) + 1
while (@index > 0)
  begin
    print parsename(@txt, @index)
    select @index = @index - 1
  end

 

超出四个以上的字符串组合,用charindex截取字符索引
declare @txt varchar(50), @index int
set @txt = '广州.上海.北京.天津.合肥'
select @index = charindex('.', @txt)

if @index = 0
   begin
     print @txt
     return
   end
while (@index > 0)
  begin
    print left(@txt, @index - 1)
    select @txt = substring(@txt, @index + 1, len(@txt)), @index = charindex('.', @txt)
  end
print @txt

小楼宝宝的涂鸦花花(Imitater)的博客起名称骨测字皖ICP备06000023号-17