我有一个表名 - UserData,它包含一个列名 -
的UserInfo。
UserInfo列包含以下值
demo.acc.in
swiss.com.au
austa.edu.co
我想从中提取以下信息......
Output Output
acc in
com au
edu co
提前感谢您的帮助
答案 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 |
+----+-----+-------+--------+