【发布时间】:2012-04-03 10:09:42
【问题描述】:
我在联系人详细信息数据库中有如下所示的行:
contactID - bioID - AddressLine1 - City
393 1 1 nowhere st toronto
3921 1 2 somewhere st vancouver
3231 2 1 anywhere rd barrie
1122 2 2 overthere st halifax
我目前正在将其加入到包含 firstname, lastname 等列的生物表中,结果如下所示:
bioid firstname lastname addressline1 city
1 some guy 1 nowhere st toronto
1 some guy 2 somewhere st vancouver
2 that girl 1 anywhere rd barrie
2 that girl 2 overthere st halifax
所以我基本上为每个简历获得 2 行。无论如何我可以像这样选择这一切作为一行:
bioid firstname lastname addressline1x1 cityx1 addressline1x2 cityx2
1 some guy 1 nowhere st toronto 2 somewhere st vancouver
2 that girl 1 anywhere rd barrie 2 overthere st halifax
感谢任何帮助。
谢谢, 托马斯
编辑:
非常感谢丹尼斯和贾斯汀,我能够解决这个问题。但是,现在我有另一个。
我想实际选择地址作为 1 个字段,例如:
bioid firstname lastname primary address secondary address
1 some guy 1 nowhere st, toronto 2 somewhere st, vanvouver
2 that girl 1 anywhere rd, barrie 2 overthere st, halifax
我知道我可以通过连接如下列来做到这一点:
cd1.addressline1 + ', ' cd1.city AS 'Primary Address'
但是,记录中的某些字段是空的,例如,如果没有辅助地址 - 那么我怎样才能使辅助地址不输出','?这些字段是空字符串,而不是 NULL 值。
再次感谢!
编辑:我有这个工作使用:
STUFF(COALESCE(', ' + NULLIF(C1.[AddressLine1], ''), '') +
COALESCE(', ' + NULLIF(C1.[AddressLine2], ''), '') +
COALESCE(', ' + NULLIF(C1.[City], ''), '') +
COALESCE(', ' + NULLIF(C1.[State], ''), '') +
COALESCE(', ' + NULLIF(C1.[Country], ''), '') +
COALESCE(', ' + NULLIF(C1.[ZipCode], ''), ''),1, 1, '') AS 'Primary Address'
【问题讨论】:
标签: sql sql-server sql-server-2005 join