我有一个像这样的列的表:
Name
-----
ABC\name1
DEFG\name2
ABC\name3
xy\name4
ghi\name5
我正在尝试将“\”字符的“名称”列中的字段分开。删除“\”之前的所有内容,包括“\”,或将Name列分成2个新列,如下所示:
Domain Name
------------
ABC name1
DEFG name2
ABC name3
xy name4
ghi name5
如何将查询更新表格看起来像这样?
谢谢!
答案 0 :(得分:1)
根据Aaron Bertrand先生的评论,您可以使用SUBSTRING和CHARINDEX:
;WITH TestData(Name) AS(
SELECT 'ABC\name1' UNION ALL
SELECT 'DEFG\name2' UNION ALL
SELECT 'ABC\name3' UNION ALL
SELECT 'xy\name4' UNION ALL
SELECT 'ghi\name5'
)
SELECT
Domain = SUBSTRING(Name, 1, CHARINDEX('\', Name) - 1),
Name = SUBSTRING(Name, CHARINDEX('\', Name) + 1, LEN(Name) - CHARINDEX('\', Name))
FROM TestData
<强> RESULT 强>
Domain Name
---------- ----------
ABC name1
DEFG name2
ABC name3
xy name4
ghi name5