我不确定我所尝试的是否可以实现!!
我正在尝试编写SQL查询,将根据用户输入执行select语句。
所以如果用户输入= 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.
这可能吗?
答案 0 :(得分: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
这至少可以为您提供一致的三列结果集。让查询返回不同的列数不会起作用。
答案 1 :(得分:-1)
select ID,Gender,Age
from TableA
where i_userkey = 1
union all
select 0, 0, 0
from dual
where i_userkey = 0
您可能必须调整双选中的数据类型以匹配TableA