获取逗号分隔值并更新为逗号分隔值

时间:2019-03-01 18:27:12

标签: sql sql-server tsql

我有两个桌子。表1,表2。我必须基于Table1和Table2中常见的其他ID从Table2中获取名称。我必须更新表1,字段名称为“名称”

表1:

id    | Name
-------------
a,b,c |

表2:

id | Name
------------
 a | dinesh
 b | suresh
 c | ganesh

表1中的输出:

Id    | Name
-------------------------------
a,b,c | dinesh, suresh, ganesh

1 个答案:

答案 0 :(得分:4)

由于您没有尝试自己解决这个问题,因此我假设您只需要指出解决方案的方向即可。

解决此问题的一种方法是使用字符串拆分功能(SS 2017内置了一个功能,但是以前的版本必须创建一个功能-如果您使用google可以在此站点上使用大量功能)。

此函数将为Table1中的每个逗号分隔值返回一个包含一行的表。然后,您可以将其加入Table2中以获取名称,并使用它来使用带有group-concat函数的逗号分隔的字符串(也内置于SS 2017中,但是这里有许多示例说明如何使用早期版本)。

一旦选择了这些值,就可以从该SELECT生成一个UPDATE并使用逗号分隔的字符串更新Table1