列值以逗号分隔

时间:2012-06-23 09:42:01

标签: sql sql-server sql-server-2008 multiple-select-query

我在SQL Server Table1Table2Table3中有3个表,其中Table1中的一列有另外两个的逗号分隔PK值表。

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

1 个答案:

答案 0 :(得分: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的PK列应具有逗号分隔值。 Table2的第一个值和表3的第二个值。

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