供应商不可知的SQL,用于跨记录连接字段值

时间:2010-10-15 05:54:09

标签: sql

我有以下数据库架构: -

alt text

数据是......

Location Table
1. New York
2. London
3. Tokyo
4. Melbourne

OtherNames Table(又名别名)

1. NYC
1. New York City
4. Home
3. Foo
3. PewPew

我正在尝试做的事情,如SQL,得到以下结果: -

  

ID,名称,名称+别名

例如

1 | New York | new york nyc new york city
2 | London | NULL
3 | Tokyo | tokyo foo pewpew
4 | Melbourne | melbourne home

我不知道如何获得最后一列。

就像我想要一个SubQuery,COALESCE是OtherName.Name字段,每个位置行......?

这与previous question我有...但我之前的问题没有给我正确的结果(我之前没有问过正确的问题:P)

注意:我正在使用TSQL /非服务器特定答案。所以请不要建议GROUP_CONCAT();

2 个答案:

答案 0 :(得分:1)

SQL不适合这种操作(1NF违规和所有这些),因此SQL中的各种变通方法将是特定于供应商的。如果你想要一些独立于供应商的东西,那就使用一些会消耗vanilla SQL(而不是生成它)的东西,例如:报告作者或3GL申请;)

答案 1 :(得分:-1)

如果您使用的是SQL Server 2005,我个人喜欢XPATH approach