2016-12-10 21 views
-1

在DB2中,我需要根据主变量的值从一列中选择行。在DB2中,我需要根据主变量的值从一列中选择行。

db列只能包含“D”或“P”。

主机变量可以包含值'D'或'P'或'B'(所有行)。

当主机变量是'D'时,我想只选择带有'D'的行。 当主机变量是'P'时,我想只选择带'P'的行。 当主机变量是'B'时,我想选择所有行。

我正在使用嵌入式SQL在RPG中执行此操作。

在此先感谢

+0

select * from table where dbColumn =:hostvar。适用于'D'和'P',但坚持如何编码hostvar ='B'。我不喜欢使用动态SQL。 – cubswin

+0

试着...... select * from table where(dbColumn =:hostvar或dbColumn in('D','P'))。 – cubswin

回答

0

这将工作...感谢所有

要去尝试... SELECT * FROM表,其中(dbColumn =:在( 'd' hostvar或dbColumn ,'P'))

+1

不应该工作,因为('D','P')'中的'或dbColumn应该总是选择所有行。试试'或:hostvar ='B''来代替。 – user2338816

1

在这里,你去。

select * from table     
where dbColumn in (       
case when :hostvar ='B' then 'D'       
    when :hostvar ='D' then 'D' 
    when :hostvar ='P' then 'P'          
end ,            
case when :hostvar ='B' then 'P'       
end 
)            
+0

感谢您的回复。问题关闭。 – cubswin

相关问题