SQL: 帮助规范化数据

SQL: Help normalize data

我有一个 table,其中有一列是这样的:

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

我如何/查询看起来像什么来更新我的 table 看起来像这样?

谢谢!

根据 Aaron Bertrand 爵士的评论,您可以使用 SUBSTRING and 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

结果

Domain     Name
---------- ----------
ABC        name1
DEFG       name2
ABC        name3
xy         name4
ghi        name5