我有2张桌子。第一个表的“ EmployeeIds”列是一串带有一串ID的字符串,这些ID以逗号分隔(例如:“ 4124,2945,2873,4047,3046,4774”)。
第二张表具有这些ID作为其标识(EmployeeID),并且还具有与此ID相关的名称。
我想选择一个地方,列出table1中的所有内容,但我想查看与这些ID相关的名称,而不是EmployeeIds列中的ID。
SELECT name from Table2
WHERE EmployeeID CAST(EmployeeID AS int) IN (SELECT EmployeeIds FROM Table1)
我收到此错误:“将varchar值'4124,2945,2873,4047,3046,4774'转换为数据类型int时转换失败。”
我知道上面的代码不会退还我需要的所有东西,因为我也需要将其与Table1结合在一起,但是我是从内而外的工作,而且我已经被卡在这里了。
答案 0 :(得分:0)
如果您使用的是SQL Server 2016,则可以执行以下操作:
DECLARE @s varchar(1000)
SELECT @s=EmployeeIds FROM Table1
SELECT name from Table2
JOIN STRING_SPLIT(@s,',') ON value=CAST(EmployeeID AS int)