SQL在一个单元格中加入一个包含多个查找的列

时间:2017-02-16 13:12:13

标签: sql

我有一个公司查询表,其中有7个不同的公司。 lookupkey以1开头,以7结尾。 问题是事实表有一个公司密钥,看起来像这样(1,2,3,4),这意味着该行有4个公司。但是当所有值都在一个单元格内时,如何进行连接?

The company Table look like this  
ID   Name  
1    Company1  
2    Company2  
3    Company3  
....  

事实表如下所示:

Id Amount    Company  
1  100 Usd   (1,2,3)  
2  200 Usd   (1,2)  
....   

结果

Id Amount    Company   
1  100 Usd   (Company1,Company2,Company3)  
2  200 Usd   (Company1,Company2)  

我没有按照它的方式设计数据库 谢谢

1 个答案:

答案 0 :(得分:0)

您可以将该字符串Fact.Company拆分为数组并使用数组比较运算符,例如在PostgreSQL中它将是:

JOIN Fact ON Company.ID = ANY(translate(Fact.Company, '()', '{}')::integer[])

其他方法是将其拆分为一组行,不确定RDBMS中可用于此类任务的内容。