2012-06-23 38 views
1

分隔的列值I在SQL Server中3个表Table1Table2Table3其中Table1一个列具有逗号分隔的其他两个表的PK值。由逗号

现在我想分开Table1列的值,并使用它根据找到的值从其他两个表中选择数据。

+2

为什么不设计你的数据库更好...... –

+0

数据库的目的不是MBY我....但现在我们已经到了我们不能改变它的阶段 – user987166

+0

You * could *(1)在表中添加两列'FKTb12'和'FKTbl2',(2)从那些逗号分隔的列中将数据**一次**提取到那些'FKTb12'和'FKTbl2'列,(3)从'FKTb12'和'FKTbl2'列为'Table2'和'Table3'建立适当的FK约束,然后(4)**沟壑的逗号分隔列* * 全部一起!很容易,真的... –

回答

0

试试这个

Select Table1PkValue,Table2PKValue 
From 
(
    Select SubString(PKColumn, 0,CharIndex(PKColumn, ',')) As  
    Table1PkValue,SubString(PKColumn, 
    CharIndex(PKColumn,',')+1,Len(PKColumn)-CharIndex(PKColumn,',')+1) As Table2PKValue 
    From Table1 
) 
As T 
INNER JOIN Table2 ON Table2.PkColumn=T.Table1PkValue 
INNER JOIN Table3 ON Table3.PKColumn=T.Table2KValue 

注意你的表1的PKColumn应该有逗号分隔值。第一个值的表2和第二值表3

忽略,如果,如果有任何语法错误