Oracle IF中的多个Select语句
我需要一些帮助来为报表编写prog./sql结构 Sql应该首先检查提示符,然后决定应该运行哪些“select”语句 类似于(伪代码) 以上这些似乎不起作用。请帮忙 您可以这样做:Oracle IF中的多个Select语句,oracle,select,if-statement,toad,case-statement,Oracle,Select,If Statement,Toad,Case Statement,我需要一些帮助来为报表编写prog./sql结构 Sql应该首先检查提示符,然后决定应该运行哪些“select”语句 类似于(伪代码) 以上这些似乎不起作用。请帮忙 您可以这样做: Select acc as ACCT,location as LOC where :loc = 'MN' UNION ALL Select accid as ACCT,locid as LOC where :loc = 'MA' UNION ALL Select accountid as ACCT,locat
Select acc as ACCT,location as LOC
where :loc = 'MN'
UNION ALL
Select accid as ACCT,locid as LOC
where :loc = 'MA'
UNION ALL
Select accountid as ACCT,location as LOC
where :loc = 'PA';
您可以这样做:
Select acc as ACCT,location as LOC
where :loc = 'MN'
UNION ALL
Select accid as ACCT,locid as LOC
where :loc = 'MA'
UNION ALL
Select accountid as ACCT,location as LOC
where :loc = 'PA';
若您可以创建自定义PL/SQL函数,那个么您可以从中返回结果集(所谓的记录表),然后只从函数中选择。请参阅。如果可以创建自定义PL/SQL函数,则可以从中返回结果集(所谓的记录表),然后只需从函数中选择。请参阅。那么
select acc,
case :loc
When 'MN' then location
When 'MA' then locid
When 'PA' then location
...
end
from ...
或者
select acc,
case when :loc in ('MN','PA')
then location
When :loc in ('MA',...)
then locid
...
end
from ...
这样做会更友好,因为它减少了唯一游标的数量。那么
select acc,
case :loc
When 'MN' then location
When 'MA' then locid
When 'PA' then location
...
end
from ...
或者
select acc,
case when :loc in ('MN','PA')
then location
When :loc in ('MA',...)
then locid
...
end
from ...
这样做会更友好,因为它减少了唯一游标的数量。谢谢Tony,但我不想为报表执行所有sql语句。。根据用户选择的:loc,我只需要执行一条“select”语句。优化器足够聪明,只在变量与值匹配的地方执行select,但我不想执行报表的所有sql语句。。根据用户选择的:loc,我只需要执行一个“select”语句。优化器足够聪明,只在变量与值匹配的地方执行select