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
不是列名。这是一个局部变量名。那我怎么写上面的查询呢?
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
不是列名。这是一个局部变量名。那我怎么写上面的查询呢?
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;
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;