1
select doc_no,date,acc_no,amount,
if xvar=1
(select acc_head from my_crem c where c.acc_no=o.acc_no) as acc_head
else
(select acc_head from my_debm c where c.acc_no=o.acc_no) as acc_head
from my_ordm o;

上記のクエリでxvarは、 は列名ではありません。ローカル変数名です。では、上記のクエリをどのように書くことができますか?

4

2 に答える 2

3
select 
    o.doc_no,
    o.date,
    o.acc_no,
    o.amount, 
    CASE 
         WHEN @xvar = 1 THEN c.acc_head 
         ELSE d.acc_head
    END as acc_head
from 
    my_ordm o
    left join my_crem c on c.acc_no = o.acc_no   
    left join my_debm d on d.acc_no = o.acc_no;
于 2011-04-04T05:31:06.197 に答える
0
select
    doc_no,
    date,
    acc_no,
    amount,
    Case @xvar 
           WHEN 1 Then (select acc_head from my_crem c where c.acc_no = o.acc_no)
           ELSE (select acc_head from my_debm c where c.acc_no = o.acc_no)
    END AS acc_head 
from my_ordm o;
于 2011-04-04T08:41:43.147 に答える