从 sql 中的列表解析

Parsing from a list in sql

我目前有一个数据库 table,其中列出了一名员工及其权利,如下所示:

User          Groups
Johnson       DB~LB~AP
Doe           DB~PLA

我需要一个能够列出所有用户和所有关联组的解析函数,如下所示:

User          Groups
Johnson       DB
Johnson       LB
Johnson       AP
Doe           DB
Doe           PLA

我能够找到这个很棒的解析函数 (http://sqlfool.com/2011/05/string-parsing-function/),但我无法 运行 找到用户列表。我可以一次 运行 一个用户的解析功能,但我对如何通过此功能 运行 用户列表感到困惑。

非常感谢任何帮助!

您应该可以像这样使用该功能:

select t.user, g.grp
from t cross apply
     dbo.dba_parseString_udf(t.groups, '~') g(grp);

您确实需要在当前数据库的 dbo 架构中定义函数。