【发布时间】:2014-12-23 03:11:03
【问题描述】:
这个和这个类似。 How to concatenate all columns in a select with SQL Server
但不完全是。这是 MS SQL 2008。我正在拉动患者的人口统计数据,其中之一是种族,这是一个多选领域(例如,您可以是亚洲人和中国人)。比赛表“PatientRace”通过患者 ID 链接到患者表。所以表结构是这样的:
Patient table
PatientID
PatientName
PatientAddress
PatientRace table
PatientRaceID
PatientID (FK)
Description
我只想要一行,我想要连接种族。是否可以在单个 SELECT 语句中执行此操作,或者我是否需要执行游标?我设想光标是这样的:初始选择所有其他人口统计数据,插入临时表。通过 PatientID 遍历临时表,然后为每一个获取比赛、连接并添加到临时表中。
所需的输出如下:每位患者 1 行。
姓名:“乔布洛”
种族:“亚洲人、中国人”
【问题讨论】:
-
抱歉,“亚洲、中国”不是种族。
-
一个问题。 PatientRace 表中的描述代表什么?
-
您应该为您的
Patient表添加一个RaceId,并有另一个表Race与Id和Description。在您的解决方案中,一场比赛您将获得大量参赛作品。 -
@AndreDuarte 我认为重点是患者可以属于多个种族。将 RaceId 添加到 Patient 会破坏该目的。但是可能应该有一个
Racetable 并且PatientRacetable 应该作为Race和Patient之间的连接表,以便规范关系。
标签: sql sql-server