使用parsename函数快速分割字符串

parsename函数的用法

返回一个对像名特殊的部分,这此部分有对象名称,所有者,数据名,服务器名。注意:此函数不会直接判断特殊对象是否存在,它只返回给定特殊对像名称,要是找不到合适就返回NULL。
语法:
PARSENAME ( 'object_name' , object_piece )
说明:
Object_name
检索的对象名称,它是系统名称变量。这个参数是可先项,如果此对象名称正确,并且包括服务器名,数据库名,所有者,对象名。
Object_piece
是  int  值,可以为下列值
其中
1 = Object name
2 = Schema name
3 = Database name
4 = Server name
select
    parsename ( ' server1.dbname1.dbo.table ' , 1 as  ' Object Name ' ,
    
parsename ( ' server1.dbname1.dbo.table ' , 2 as  ' Schema Name ' ,
    
parsename ( ' server1.dbname1.dbo.table ' , 3 as  ' Database Name ' ,
    
parsename ( ' server1.dbname1.dbo.table ' , 4 as  ' Server Name '
--结果

Object Name   
Schema  Name   Database  Name    Server name  
-- ------------------------------------------------------     
table          dbo          dbname1        server1      
(1 row(s) affected)


select
parsename ( ' 192.168.1.25 ' , 4 as  section1,
         
parsename ( ' 192.168.1.25 ' , 3 as  section2,
         
parsename ( ' 192.168.1.25 ' , 2 as  section3,
        
parsename ( ' 192.168.1.25 ' , 1 as  section4
-- 结果
section1 section2 section3 section4
-- ---------------------------------------
192
168
1
25
注意第一段是从4开始取的,因为这个函数对应的顺序是4是Server name,3是Database name,2是Schema name,1是Object name
通过这样的方法可以做很多简单的分割应用,当然只能用于.号的字符串且只能是少于4段。

你可能感兴趣的:(数据库)