T-SQL语句

时间:2017-02-26 16:58:23

标签: sql sql-server

我有一个表名 - UserData,它包含一个列名 -
   的UserInfo。

UserInfo列包含以下值

demo.acc.in

swiss.com.au

austa.edu.co

我想从中提取以下信息......

Output   Output    

 acc       in
 com       au
 edu       co

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以在此示例中使用parsename()

select parsename(UserInfo,2), parsename(UserInfo,1)

请注意parsename()从右向左读取,因此第一个元素是从左到右阅读时的最后一个元素。

rextester:http://rextester.com/FUGXQ46552

create table t (UserInfo varchar(32))
insert into t values 
 ('demo.acc.in')
,('swiss.com.au')
,('austa.edu.co')
,('sqlzim.austa.edu.co')

select 
    p1=parsename(UserInfo,1)
  , p2=parsename(UserInfo,2)
  , p3=parsename(UserInfo,3)
  , p4=parsename(UserInfo,4)
from t

+----+-----+-------+--------+
| p1 | p2  |  p3   |   p4   |
+----+-----+-------+--------+
| in | acc | demo  | NULL   |
| au | com | swiss | NULL   |
| co | edu | austa | NULL   |
| co | edu | austa | sqlzim |
+----+-----+-------+--------+