在DB2中,我需要根据主变量的值从一列中选择行。在DB2中,我需要根据主变量的值从一列中选择行。
db列只能包含“D”或“P”。
主机变量可以包含值'D'或'P'或'B'(所有行)。
当主机变量是'D'时,我想只选择带有'D'的行。 当主机变量是'P'时,我想只选择带'P'的行。 当主机变量是'B'时,我想选择所有行。
我正在使用嵌入式SQL在RPG中执行此操作。
在此先感谢
在DB2中,我需要根据主变量的值从一列中选择行。在DB2中,我需要根据主变量的值从一列中选择行。
db列只能包含“D”或“P”。
主机变量可以包含值'D'或'P'或'B'(所有行)。
当主机变量是'D'时,我想只选择带有'D'的行。 当主机变量是'P'时,我想只选择带'P'的行。 当主机变量是'B'时,我想选择所有行。
我正在使用嵌入式SQL在RPG中执行此操作。
在此先感谢
这将工作...感谢所有
要去尝试... SELECT * FROM表,其中(dbColumn =:在( 'd' hostvar或dbColumn ,'P'))
不应该工作,因为('D','P')'中的'或dbColumn应该总是选择所有行。试试'或:hostvar ='B''来代替。 – user2338816
在这里,你去。
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
)
感谢您的回复。问题关闭。 – cubswin
select * from table where dbColumn =:hostvar。适用于'D'和'P',但坚持如何编码hostvar ='B'。我不喜欢使用动态SQL。 – cubswin
试着...... select * from table where(dbColumn =:hostvar或dbColumn in('D','P'))。 – cubswin