我正在一个网站上工作,我应该从用户那里获取数据,然后根据他的职业信息向他展示他当天应该完成的任务
我在数据库“Manager”和“Worker”中有两个主表。
当用户输入他的数据时,他返回的id应显示他的类型是什么。 然后我拿着身份证和日期来完成当天的工作。
我正在考虑的是制定一个条件来检查是否在Manager表中找到了这个id&如果发现它将检索相关任务,否则它将检索与工作者相关的任务。
但我之前从未在SPROC上写过条件,而我发现的所有条件是x =< > ......等(这不是我想要的)。
那么,如果您告诉我它是如何编写的,或者是否有任何有用的教程或文章提到类似的情况,是否可能?
非常感谢。
答案 0 :(得分:1)
尝试这样的事情:
IF EXISTS(SELECT ManagerID FROM Managers WHERE ManagerID = @ID) BEGIN
--select from manager tasks
END
ELSE BEGIN
--select worker tasks
END
我认为这就是你所要求的,所以现在我要加两分钱。我不知道你是否能够编辑模式,但将管理器和工作者放在一个表中并添加一个类型列是不是更有意义?如果你这样做的话,这一切都不是必需的。
答案 1 :(得分:1)
你的问题在某种程度上让你感到困惑......
我想您想知道您的用户(user_id)是否出现在您的经理表或工作人员表中。
您可以通过以下查询轻松找到..
select 'Manager' as u_type from manager
where manager_id = <user_id>
union all
select 'Worker' as u_type from worker
where worker_id = <user_id>
因此,借助此u_type
值,您可以轻松识别您的用户类型信息..
之后如你所提到的那样,按日提取数据非常简单......
此查询可以在存储过程中用作
select u_type
into l_u_type
from
(
select 'Manager' as u_type from manager
where manager_id = <user_id>
union all
select 'Worker' as u_type from worker
where worker_id = <user_id>
)
其中l_u_type
是您的本地变量,将是varchar2
或string
数据类型