2016-10-16 2 views
0

私は2つの列を持つテーブルを持っています。それぞれ2つのIDを持っています。 3番目の列をテーブルに追加します。これは、列1の数値が列2にも存在する場合は「true」と表示されます。 ていない場合は、その後3列目は、私は次のコードwith sung case

case when 
where Id (SELECT P_id FROM Tree) 
then True 
else false 
end 
as Type 

を使用しようとしていますが、ケースとどこが一緒に働いていない「偽」

を言う必要があります。 これを手伝ってくれる人がいますか?

答えて

0

LEFT JOIN

SELECT CASE 
     WHEN t2.p_id IS NOT NULL THEN 'true' 
     ELSE 'false' 
     END 
FROM tree t1 
     LEFT JOIN (SELECT DISTINCT p_id 
        FROM tree) t2 
       ON t1.id = t2.p_id 
を使用してこのよう

SELECT CASE 
     WHEN EXISTS (SELECT 1 
         FROM tree t2 
         WHERE t1.id = t2.P_id) THEN 'true' 
     ELSE 'false' 
     END AS Type 
FROM tree t1 

別の方法を試してみてください