【发布时间】:2013-10-14 01:29:46
【问题描述】:
我从一个查询中返回了一个字符串,该查询将一个 id 列表返回到另一个表。该字符串可以包含 1 个 id 或以逗号分隔的 id 列表。
我想转换 id 列表,以便引用 ids 主表中的另一个字段(在本例中为名称)。
例如select * from task 返回:
taskid,jobid,start,finish
1,"333",09:00,12:00
2,"334",08:00,16:00
3,"333,334",09:00,17:00
我想引用 'job' 表,以便在字符串中返回 'job.name' 代替 job.jobid。所以它看起来像这样:
taskid,jobid,start,finish
1,"Wash",09:00,12:00
2,"Dry",08:00,16:00
3,"Wash,Dry",09:00,17:00
【问题讨论】:
-
你需要一个
INNER JOIN。 -
但是我怎样才能让字符串保持为逗号分隔值,只显示名称而不是 id?
-
我没有注意到它是一个字符串。
-
如果您想要一个纯 SQL 解决方案,这将很困难,因为它不能很好地处理逗号列表。通常这将通过一个连接表来完成,在 Task 和 Job 记录之间创建一个一对多的连接。
标签: sql sql-server-2005