2014-05-07 48 views
0

我有兩個表。如何在case語句中使用子查詢?

table1的

t1id var1 var2 
1 xxx ccc 
2 ccc ddd 
3 eee bbb 

表2

t2id attribute 
1 lll 
3 ggg 
4 ggg 
5 lll 

,我需要選擇*從表1,與串聯t1idattribute如果t1id=t2id

這裏是我試過

SEL CASE WHEN (t1id IN (SELECT t2id FROM table2)) 
    THEN t1id || attribute 
    ELSE t1id END AS t1idModified, 
var1 , var2 
FROM table1,table2 

但是,它沒有奏效。如何在案例中使用子查詢?

回答

0

即使該語法被允許也不會返回預期的結果。

t1id的數據類型是什麼數字或字符串?

你可以把它改寫成外連接(返回即使沒有匹配的行)和COALESCE(CONCAT屬性或「」):

SELECT 
    TRIM(t1.t1id) || (COALESCE(t2.ATTRIBUTE, '')) AS t1idModified, 
    var1, var2 
FROM table1 AS t1 
LEFT JOIN table2 AS t2 
ON t1.t1id = t2.t2id