【发布时间】:2018-04-20 11:38:50
【问题描述】:
我一直无法为以下困境找到可行的解决方案。
我使用的是 SQL Server 2016,并且在数据库中有如下所示的 2 个表。
Users表:
Id Name
----------
1 Lisa
2 Paul
3 John
4 Mike
5 Tom
Role表:
Id UserId Role
------------------------
1 3 Manager
2 2,4,5 Developer
3 1 Designer
我正在寻找遍历Role 表、提取UserIds 并从Users 表中检索每个Id 的关联名称的T-SQL 代码。
所以循环的结果应该是这样的:
John
Paul,Mike,Tom
Lisa
【问题讨论】:
-
修复您的数据模型。不要将数字 ID 存储为分隔字符串。在关系数据库中存储数据是一种错误的方式。
-
而且只会给你带来很多麻烦。 (就像这里...)
-
我同意,但不幸的是我没有创建数据库,我只是被问题困住了
-
您没有更改数据库的选项吗?仅仅因为数据库最初设计不佳并不意味着您应该坚持使用它;修复设计,修复问题。另外,你试过什么?一个简单的搜索可能会在 SO 上为您提供 100 个锁定的重复项。
-
“我一直无法找到解决以下困境的有效解决方案。” 这意味着您尝试了任何方法。发布那是什么。 SO 期待一些先前努力的证据。发布您已经尝试过但没有奏效的内容也有助于避免读者通过提出不合适的建议来浪费时间。
标签: sql sql-server tsql stored-procedures sql-server-2016