2012-06-23 39 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

忽略,如果,如果有任何語法錯誤