0

我不确定我正在尝试的是否可以实现!

我正在尝试编写一个 SQL 查询将根据用户输入执行选择语句。

因此,如果用户输入 = 1,那么我希望它从实际表中进行选择。如果用户输入 = 0,那么我希望它从对偶中选择 0 或 null。(如果可能的话)。

所以这是用于从用户获取输入的参数。?i_userkey:'':null? 如果用户输入为 1,那么它会将 null 更改为 1。

我想用这个参数写一个查询。像这样的东西。

下面是逻辑。

IF i_userkey = 1 then 
       select ID,Gender,Age from TableA
If i_userkey = 0 then
       select 0 or null from dual.

这可能吗?

4

2 回答 2

2

这个怎么样:

SELECT 
  CASE WHEN i_userkey = 1 THEN ID ELSE NULL END AS ID 
  CASE WHEN i_userkey = 1 THEN Gender ELSE NULL END AS Gender
  CASE WHEN i_userkey = 1 THEN AGE ELSE NULL END AS Age
FROM TableA

这至少会为您提供一个可以使用的一致的三列结果集。让查询返回不同的列数是行不通的。

于 2013-09-11T16:04:34.750 回答
-1
select ID,Gender,Age 
from TableA
where i_userkey = 1
union all
select 0, 0, 0 
from dual
where i_userkey = 0

您可能必须调整双选中的数据类型以匹配 TableA

于 2013-09-11T16:03:58.513 回答